Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.204.214.205] |
|
Сообщ.
#1
,
|
|
|
Получил месседж...
Цитата A potentially dangerous Request.Form value was detected from the client (ctl13$txtMessage="<h1>Hello, world1</h..."). Description: Request Validation has detected a potentially dangerous client input value, and processing of the request has been aborted. This value may indicate an attempt to compromise the security of your application, such as a cross-site scripting attack. You can disable request validation by setting validateRequest=false in the Page directive or in the configuration section. However, it is strongly recommended that your application explicitly check all inputs in this case. Exception Details: System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (ctl13$txtMessage="<h1>Hello, world1</h..."). Ничто не мешает отключить эту валидацию... ибо задалбывает... с другой стороны - может она иногда и полезна бывает, как вы считаете, господа? |
Сообщ.
#2
,
|
|
|
Забить на валидацию безопасно до тех пор, пока ты это не соберешься вывести введенную юзверем строчку на экран в первозданном виде, не пропуская через HttpUtility.HtmlEncode. А отключить ее можно как на уровне страницы, так и глобально. На самом деле ИМХО надо отключать. Меня бы, как юзера напрягала невозможность вводить символы < >
|
Сообщ.
#3
,
|
|
|
Цитата Uncle_Bob @ Меня бы, как юзера напрягала невозможность вводить символы < > Да и недружелюбно как-то, когда на твою попытку изобразить модный ник, браузер выкидывает белую страничку с жёлтым фоном... Надо обрабатывать руцями дыры подобные... хотя геморойно... иногда можно и неуследить. |
Сообщ.
#4
,
|
|
|
Цитата Budda @ иногда можно и неуследить. Надо просто за правило взять, все что выводится на страничку из базы, пропускать через HtmlEncode. Независимо от того, как оно в базу попадает... Тогда за всем уследишь Добавлено Цитата Budda @ Да и недружелюбно как-то, когда на твою попытку изобразить модный ник, браузер выкидывает белую страничку с жёлтым фоном... И очень информативным сообщением |
Сообщ.
#5
,
|
|
|
Цитата Uncle_Bob @ все что выводится на страничку из базы, пропускать через HtmlEncode из базы? Но почему не наоборот? Чем грозит выкладывание на страничку незаенкоденных данных? |
Сообщ.
#6
,
|
|
|
Цитата Budda @ Чем грозит выкладывание на страничку незаенкоденных данных? как вариант там может быть JS скрипт который получает кукие и пр. |
Сообщ.
#7
,
|
|
|
Цитата kosten @ как вариант там может быть JS скрипт который получает кукие и пр. Так может стоить енкодить данные перед сохранением в БД? |
Сообщ.
#8
,
|
|
|
Цитата Budda @ Так может стоить енкодить данные перед сохранением в БД? конечно, ведь там может быть запрос который вызовет SQL-инъекцию. |
Сообщ.
#9
,
|
|
|
А... т.е. и одно, и другое... ясно. Но насчёт инъекции... если делать гармотные запросы (с плэйхолдерами), то инъекция не проконает ведь... ?
|
Сообщ.
#10
,
|
|
|
Budda
запросы лучше делать через хранимые процедуры. |
Сообщ.
#11
,
|
|
|
У меня мускуль 3й...
|
Сообщ.
#12
,
|
|
|
Да, в одну сторону надо проверять на предмет SQL инъекции, в другую - JS инъекции. Кстати, через JS можно запостить троянчика, запросто.
|
Сообщ.
#13
,
|
|
|
Если проверять На JS-инъекцию, то тогда уж проверять при сохранении данных в БД... Потом ведь можно и не проверять более... или вы бы при выводе тоже проверяли , да? Но почему?
|
Сообщ.
#14
,
|
|
|
ИМХО в базе дешевле хранить <> чем & gt; & lt;
Второй вариант. Кто-то получил несанкционированный доступ к базе и подложил туда того же трояна |
Сообщ.
#15
,
|
|
|
охохо.. не ... он же тогда и скрипты может "поправить"... правда к базе доступ проще получить, чем к сорцам...
|
Сообщ.
#16
,
|
|
|
В общем, пропуская все "сомнительные" строки через HtmlEncode, ты гарантируешь себе безопасность по линии JS инъекций.
|