UPDATE:
Я добавил защиту CSRF, как сказал мне Бердир, с помощью ссылки ниже, чтобы мое приложение снова заработало. Однако .. Я не совсем уверен, что я сделал прямо сейчас: D Как это сделает мое приложение более безопасным? Меня особенно беспокоит тот факт, что теперь я получаю значение cookie в своем коде ajax, потому что мне нужно передать его с помощью вызова ajax ... в противном случае это просто не работает. Разве это не дает важную информацию о куки? Или я просто параноик. Спасибо!
http://aymsystems.com/ajax-csrf-protection-codeigniter-20
// старый
Привет.
В этом веб-приложении, которое я создаю, есть функция, позволяющая добавлять «советы и подсказки» по определенным предметам. Эти страницы могут быть добавлены только учетными записями с ролью администратора. Тем не менее, я также хочу возможность удалить эти страницы. (Всегда удобно, верно). Поскольку я использую CodeIgniter, я думал просто о создании функции контроллера, которая принимает идентификатор и передает этот идентификатор в модель, где страница, соответствующая этому идентификатору, будет удалена из базы данных.
Просто чтобы прояснить это:
Контроллер:
public function del_content($id)
{
$this->content_model->del_content($id)
}
Модель:
public function del_content($id)
{
// database code which I can't be bothered to look up now
// something like $this->db->where(), $this->db->delete()
}
Это все очень просто, но я боюсь, что это может быть слишком просто. Это на самом деле не так уж и безопасно для меня, не так ли? Поскольку вы сможете вызывать функцию из адресной строки URL в вашем браузере, вы можете в основном удалить всю таблицу содержимого через нее. (Поскольку вы будете делать http://mywebsite/controller/del_content/3
для элемента с идентификатором 3). Конечно, только учетные записи администраторов будут иметь доступ к этой функции, но все же ..
Я никогда не программировал ничего подобного раньше, и поэтому мне никогда не приходилось думать о мерах безопасности, которые я должен принять в этом случае. Будет ли кто-нибудь достаточно любезен, чтобы дать мне некоторые вещи, за которыми я должен следить, и, возможно, некоторые идеи, предложения, как сделать это более безопасным?
Большое спасибо!