Как получить QueryString от href? - PullRequest
3 голосов
/ 20 июня 2010

Я пытаюсь остановить XSS-атаку, поэтому я использую html agility pack для создания своего белого списка и библиотеку Microsoft Anti-Cross Site Scripting для работы с остальными.

Теперь я смотрю на кодирование всех html hrefs,Я получаю большую строку HTML-кода, который может содержать ссылки.Согласно MS Library, они имеют кодировку URL, но если вы кодируете весь URl, то он не может быть использован.Таким образом, в примере они просто кодируют строку запроса

UrlEncode Ненадежный ввод используется в URL (например, значение в строке запроса). Нажмите здесь!

http://msdn.microsoft.com/en-us/library/aa973813.aspx

Итак, теперь мои вопросы: как мне разобрать href и найти строку запроса.Это всегда просто "?"затем запросить строку или она может содержать пробелы и быть написана по-разному?

Редактировать

Эти URL будут написаны не мной, а пользователями, которые будут ими делиться.Вот почему мне нужен способ убедиться, что я получаю все строки запроса, а не только строки в правильном формате.Если это может работать в недопустимом формате, я должен взять эти тоже.Хакерам все равно, будет ли это действительный формат или нет, если он все еще делает то, что хочет.

Ответы [ 3 ]

5 голосов
/ 20 июня 2010

Я верю, что всегда всегда часть после?но вы можете легко использовать класс Uri для этого:

Uri uri = new Uri("http://foo.com/page.html?query");
string query = uri.Query;

Что будет включать в себя?сам.Конечно, вы можете получить и другие биты, что может быть удобно.

0 голосов
/ 20 июня 2010

Вот W3C-ссылка , адресованная составу URI с помощью строк запроса, которая частично говорит:

Знак вопроса ("?", ASCII 3F hex) используется дляРазграничить границу между URI запрашиваемого объекта и набором слов, используемых для выражения запроса по этому объекту.

0 голосов
/ 20 июня 2010

как насчет использования зашифрованной строки запроса, и в вашем коде вы можете расшифровать ее
ИЛИ вы можете использовать Request.PathInfo , который вам не нужен? в строке запроса

...