Защита от удаления

309
06 июня 2017, 01:10

У меня на сайте, есть ссылка с GET параметрами ?interface-admin=1&del-id=1 если на неё нажать, то админ удалится.

Так вот, я это всё поместил в img

<img src="http://localhost/dashboard/sait/?interface-admin=1&del-id=1">

и если это изображение загрузить, то админ удалится.

Как тут быть, что бы не подделывали запрос? Хранить всё в текстовых файлах?

Answer 1

Классика CSRF уязвимости.

Во-первых: ничего не удаляйте и не изменяйте по GET-запросу. GET-запросы должны только читать, по стандарту полагается, что они не изменяют состояние системы, потому безопасны и могут выполняться многократно. Иногда даже без ведома пользователя, например, для фоновой подгрузки следующей страницы. Для изменения состояния используйте POST-запросы.

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

Во-вторых: так же не составляет труда попросить выполнить браузер при заходе на специально-оформленную страницу простой POST-запрос без ведома пользователя (в частности, как результат XSS атаки). Изменяющие данные запросы должны быть защищены токеном безопасности, который должен передаваться вместе с запросом.

Answer 2

Не совсем понял зачем тег <img>, но лучше использовать метод POST как говорилось выше. У меня например при клике на кнопку вызывается модальное окно в котором спрашивается действительно ли я хочу совершить данное действие, будь то удаление или редактирование (так сказать защита от случайного действия), при нажатии на кнопку "Да" отправляется AJAX запрос с данными (например ID) методом POST после чего обрабатывается и выполняется действие, и то при условии что уровень доступа администратор, а при нажатии кнопки "Отмена", модальное окно закрывается.

READ ALSO
like запрос mysql

like запрос mysql

здравствуйте, к примеру есть запрос:

260
Убрать page=1 из пагинации

Убрать page=1 из пагинации

Сделал пагинацию на основе кода нарытого на просторах интернета, так-как такая реализация больше всего мне подходит, помогите сделать так...

342
Как спарсить ajax через curl

Как спарсить ajax через curl

Всем привет! стоит задача спарсить страницу: https://halykbankkz/presscenter/novosti

303
Удаление файлов через Cron php

Удаление файлов через Cron php

Есть такой скрипт

276