Лучшие практики для дезинфекции входных данных SQL Использование JavaScript? - PullRequest
2 голосов
/ 30 апреля 2010

Таким образом, с помощью HTML5, предоставляющего нам локальные базы данных SQL на стороне клиента, если вы хотите записать выборку или вставку, у вас больше нет возможности дезинфицировать сторонний ввод, говоря $buddski = mysql_real_escape_string($tuddski), потому что парсер PHP и мост MySQL далеко Это совершенно новый мир SQLite, где вы составляете свои запросы и анализируете результаты с помощью JavaScript.

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

Итак, как лучше всего в чистом JavaScript избежать / очистить ваши входные данные, чтобы они не наносили ущерб встроенной базе данных вашего пользователя?

Скриплеты? технические характеристики? Кто-нибудь?

Ответы [ 5 ]

6 голосов
/ 30 апреля 2010

Как только вы полностью доверяете вычисления клиенту, игра заканчивается. Даже если ваши сценарии пуленепробиваемые, пользователь все равно может загружать свои собственные сценарии локально (для примера см. GreaseMonkey) - и самостоятельно обращаться к базе данных на стороне клиента, минуя ваши сценарии.

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

2 голосов
/ 30 апреля 2010

Я не уверен насчет HTML5 и локальных баз данных, но на стороне сервера лучше использовать подготовленные операторы , а не экранировать. Я считаю, что то же самое с базами данных на стороне клиента.

1 голос
/ 02 мая 2010

Используйте подготовленные заявления.

http://dev.w3.org/html5/webdatabase/#sql-injection

0 голосов
/ 30 апреля 2010

Используйте Google Html Sanitizer от Google, доступный в составе дистрибутива Caja по адресу: http://code.google.com/p/google-caja/

Эта библиотека может использоваться как на стороне клиента, так и на стороне сервера. Я использую его на стороне сервера в классическом проекте ASP, в котором работает библиотека под хостом ASP JScript.

0 голосов
/ 30 апреля 2010

Я думаю, даже если вы очистите свои входные данные в своем javascript, это сделает вашу систему уязвимой для атак. Также было бы излишним, если вы поместите дезинфицирующее средство ввода в свой JavaScript и поместите еще один в свой PHP-файл.

...