Скажем, у меня есть таблица, и каждая строка имеет 2 столбца: 1) некоторая информация 2) ничего, кроме удаления текущей информации при нажатии с помощью AJAX
<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)?
Ваш серверный код должен всегда проверять, имеет ли пользователь право выполнять определенную операцию, удалять или добавлять или обновлять или что-то еще. Любые файлы cookie сеанса переносятся также с помощью вызова Ajax, поэтому используйте те, которые проверяют пользователя (не забывайте, что файлы cookie сеанса также могут быть захвачены, а в критических приложениях привязать их к стороне сервера IP-адресов).
Edit: other method Вы также можете генерировать одноразовый токен на сервере и передавать Ajax-вызов, а также один из аргументов. На сервере вы должны отслеживать эти токены и разрешать действия с действительным токеном. Действительный van be: сгенерирован меньше, чем x минут назад, на том же IP-адресе.
Всегда проверяйте свои данные на стороне сервера! Клиент может делать все, что захочет, и вы ничего не можете с этим поделать… так что только серверная сторона может проверить на финале