2014-02-03 1 views
0

Допустим, у меня есть таблица и каждая строка имеет 2 колонки: 1) некоторые информационные 2) ничего, кроме удаления текущей информации при нажатии с помощью AJAXAjax атаки через браузер Осмотреть элементы

<table> 
    <tr> 
     <td> info 1 </td> 
     <td id="1" onclick="$.ajax('delete.php', {'id':this.id})"></td> 
    </tr> 
    <tr> 
     <td> info 2 </td> 
     <td id="2" onclick="$.ajax('delete.php', {'id':this.id})"></td> 
    </tr> 
    <tr> 
     <td> info 3 </td> 
     <td id="3" onclick="$.ajax('delete.php', {'id':this.id})"></td> 
    </tr> 
</table> 

может кто-то просто используя браузер Inspect Elements и измените идентификатор на другой номер - и затем удалите все, что он захочет! как я могу его защитить? как это делает любой другой сайт (например, facebook с методом LIKES)?

ответ

1

Ваш код сервера всегда должен проверять, имеет ли пользователь право выполнять определенную операцию, удалять или добавлять или обновлять или что-то еще. Любые файлы cookie сеанса переносятся также с помощью вызова Ajax, поэтому используйте те, которые проверяют пользователя (не забывайте, что файлы cookie сеанса также могут быть захвачены, а в критических приложениях привязать их к стороне сервера IP-адресов).

Редактировать: другой метод Вы также можете генерировать одноразовый токен на сервере и передавать Ajax-вызов, а также один из аргументов. На сервере вы должны отслеживать эти токены и разрешать действия с действительным токеном. Действительный van be: сгенерирован меньше, чем x минут назад, на том же IP-адресе.

2

Всегда проверяйте свои данные на стороне сервера! Клиент может делать все, что захочет, и вы ничего не можете с этим поделать ... так что только серверная сторона может проверить на окончательном