|
static void | loading_callback (struct download *, struct session *) |
|
static void | free_task (struct session *ses) |
|
void | abort_preloading (struct session *ses, int interrupt) |
|
void | ses_load (struct session *ses, struct uri *uri, char *target_frame, struct location *target_location, cache_mode_T cache_mode, enum task_type task_type) |
|
static void | post_yes (void *task_) |
|
static void | post_no (void *task_) |
|
static int | check_malicious_uri (struct uri *uri) |
| Check if the URI is obfuscated (bug 382).
|
|
void | ses_goto (struct session *ses, struct uri *uri, char *target_frame, struct location *target_location, cache_mode_T cache_mode, enum task_type task_type, int redir) |
|
struct view_state * | ses_forward (struct session *ses, int loaded_in_frame) |
| If loaded_in_frame is set, this was called just to indicate a move inside a frameset, and we basically just reset the appropriate frame's view_state in that case.
|
|
static void | ses_imgmap (struct session *ses) |
|
static enum do_move | do_redirect (struct session *ses, struct download **download_p, struct cache_entry *cached) |
|
static enum do_move | do_move (struct session *ses, struct download **download_p) |
|
static void | do_follow_url (struct session *ses, struct uri *uri, char *target, enum task_type task, cache_mode_T cache_mode, int do_referrer) |
|
static void | follow_url (struct session *ses, struct uri *uri, char *target, enum task_type task, cache_mode_T cache_mode, int referrer) |
|
void | goto_uri (struct session *ses, struct uri *uri) |
|
void | goto_uri_frame (struct session *ses, struct uri *uri, char *target, cache_mode_T cache_mode) |
|
void | delayed_goto_uri_frame (void *data) |
|
void | map_selected (struct terminal *term, void *ld_, void *ses_) |
|
void | goto_url (struct session *ses, char *url) |
|
struct uri * | get_hooked_uri (const char *uristring_, struct session *ses, char *cwd) |
|
void | goto_url_with_hook (struct session *ses, const char *url) |
|
int | goto_url_home (struct session *ses) |
|
void | goto_imgmap (struct session *ses, struct uri *uri, char *target) |
|
Sessions task management.
static int check_malicious_uri |
( |
struct uri * | uri | ) |
|
|
static |
Check if the URI is obfuscated (bug 382).
The problem is said to occur when a URI designed to pass access a specific location with a supplied username, contains misleading chars prior to the @ symbol.
An attacker can exploit this issue by supplying a malicious URI pointing to a page designed to mimic that of a trusted site, and tricking a victim who follows a link into believing they are actually at the trusted location.
Only the user ID (and not also the password) is checked because only the user ID is displayed in the status bar.
If loaded_in_frame is set, this was called just to indicate a move inside a frameset, and we basically just reset the appropriate frame's view_state in that case.
When clicking on a link inside a frame, the frame URI is somehow updated and added to the files-to-load queue, then ses_forward() is called with loaded_in_frame unset, duplicating the whole frameset's location, then later the file-to-load callback calls it for the particular frame with loaded_in_frame set.