2017-02-21 2 views
0

Я должен продемонстрировать SQL Injection на веб-сайте, однако на моем сайте используется привязка данных knockout.js для получения объекта AJAX с типом POST и dataType JSON.Может ли SQL Injection произойти при использовании Knockout.js?

Примером являются:

<script src="http://knockoutjs.com/downloads/knockout-2.3.0.js"></script> 
<div data-bind="value: details().Name" /> 
<script> 
    ko.applyBindings(); 
</script> 

Может SQL Injection происходит в такой форме представления? Если да, то как это может произойти? Можете ли вы привести пример того, как будет выглядеть вход для всех строк?

например. нормальный SQL Инъекция будет

a'; DROP TABLE users; 

Как это может случиться на моем сайте?

+3

* «Я должен продемонстрировать SQL Injection на веб-сайте» * Технологии, которые вы используете на веб-сайте, не имеют значения: просто отправьте заказную POST, полностью обходя KO и ваш код JavaScript. Это код ** сервера **, который должен быть неуязвим для SQL-Injection; нет ничего, что может сделать ваш клиентский код, чтобы предотвратить его. –

+0

В качестве побочного примечания я предпочитаю устанавливать соответствующие проверки на стороне сервера для тех, кто находится на стороне клиента ... – gkb

ответ

2

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

Для правильной проверки уязвимостей API для SQL-инъекций вам необходимо вручную создать пользовательские HTTP-запросы с помощью собственной полезной нагрузки JSON, чтобы попытаться определить, не уязвимо ли какое-либо из полей для SQL-инъекции. Это связано с тем, что ваш API, вероятно, имеет гораздо больше входных данных, чем напрямую через пользовательский интерфейс, поэтому, тестируя пользовательский интерфейс, вы не получаете полного охвата вашей системы.

3

SQL-инъекция должна быть предотвращена на стороне сервера.

Все, что происходит на стороне клиента, не имеет значения.

Аудиторские аутсорсинговые компании могут использовать ваш интерфейс, но они, скорее всего, будут использовать другие инструменты для отправки HTTP-запросов на ваш сайт, что в обход вашего интерфейса.

Смежные вопросы