Предотвращение JavaScript в URL-атаках (asp.net) - PullRequest
0 голосов
/ 01 сентября 2009

Я видел много предложений по предотвращению атак с использованием межсайтовых сценариев, но я не спрашиваю о проверке ввода формы. Как бы мне предотвратить что-то вроде этого:

javascript:(function(i,j){with(document){for(i=0;i<forms.length;++i){with(forms[i]){for(j=0;j<elements.length;++j){elements[j].disabled=false}}}}})()

от вставки в URL? Этот код включит все элементы формы на странице, если добавить их в URL. Так что, если вы отключили определенные кнопки на основе разрешений или чего-то еще, все эти кнопки станут активными.

Должен ли я просто проанализировать URL и проверить ключевое слово Javascript?

Ответы [ 2 ]

3 голосов
/ 01 сентября 2009

Нет. В любом случае вы не можете, так как он не отправляется на сервер.

Это просто JavaScript, выполняемый локально самим пользователем. Это ничего не должно значить для вас. Безопасность вашей системы не должна никогда полагаться на JavaScript на стороне клиента, вся ваша аутентификация и т. Д. Должна выполняться на стороне сервера.

0 голосов
/ 01 сентября 2009

Ключ в том, чтобы не беспокоиться об этом на стороне клиента. На стороне сервера вы должны быть пуленепробиваемыми. Не думайте, например, что только потому, что вы назвали свою форму, совпадающую с именами столбцов базы данных, вы можете просто выполнить цикл по Request.Form и сохранить все полученные данные. Вам следует подтвердить, что вы обрабатываете только те входные данные, которые ожидаете, и проверяете их для типа данных и диапазона, а также с учетом разрешений пользователя на изменение заданного поля.

Таким образом, пользователь может отправлять все, что хочет, вы только обрабатываете и принимаете действительные данные на стороне сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...