Предотвращение внедрения JavaScript - PullRequest
1 голос
/ 16 марта 2009

Каков наилучший способ предотвращения внедрения JavaScript в веб-приложение VB.NET? Есть ли способ отключить JavaScript на событии загрузки страницы?

В последнее время частью плана обеспечения безопасности нашего продукта vb.net было просто отключить кнопки на странице, которые не были доступны конкретному пользователю. Тем не менее, я проинформировал парня, который подумал о том, что набрав

javascript:alert(document.getElementById("Button1").disabled="")

в адресной строке повторно активирует кнопку. Я уверен, что кто-то еще сталкивался с такими проблемами раньше, поэтому любая помощь приветствуется. Спасибо!

Обновление: Помимо проверки ввода пользователя, как я могу защитить сайт от того, что на него играют из адресной строки?

Спасибо за вклад! Я ценю это!

Ответы [ 5 ]

12 голосов
/ 16 марта 2009

Любые изменения, которые вы вносите в поведение вашего приложения на стороне клиента, являются поверхностными и совсем не безопасными. Вы не должны полагаться на это. Они хороши, чтобы остановить 99% пользователей, но их легко обойти. Вы должны проверять, есть ли у пользователя правильные привилегии для действия на стороне сервера, когда вызывается действие, чтобы, если кто-то решит повторно включить кнопку самостоятельно, он не сможет делать то, для чего кнопка предназначена. делать. Вы не можете контролировать, что кто-то может сделать на странице с помощью javascript, поэтому вы никогда не должны доверять ничему, исходящему от клиента.

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

7 голосов
/ 16 марта 2009

Наиболее важным элементом, который необходимо учитывать, является HTML-кодирование ввода пользователя. Если пользователь введет , он будет преобразован в & lt; script & gt; и т.д.

Обновление: Если вы ожидаете ввода от URL / строки запроса, проверьте данные с крайними мерами. По возможности белый список полученных данных. Если вы внесены в белый список, вы гарантируете, что только то, что вы считаете правильным и безопасным, является приемлемым представлением.

Никогда не доверяйте вводу пользователя.

2 голосов
/ 16 марта 2009

Никогда не доверяйте данным от клиентов. Всегда проверяйте данные и разрешения на стороне сервера, где вы контролируете. Помните, что пользователь (или любое другое приложение) может отправлять вам любые данные, которые он хочет.

2 голосов
/ 16 марта 2009

Всегда проверять ввод пользователя.

1 голос
/ 16 марта 2009

Неважно, что вы делаете для блокировки интерфейса с помощью javascript, вашими данными всегда можно каким-то образом манипулировать. Существуют различные инструменты, такие как fiddler , которые можно использовать для изменения или воссоздания обратных ссылок / запросов.

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

...