Правильне видалення елементів bitrix api
Програмування, як і мистецтво - одне слово, за яким ховається безліч занять ;)
Правильне видалення елементів [bitrix api]
Є така вразливість, коли атакуючий може видалити елемент, каталог або навіть інфоблок. Для цього потрібно знайти сторінку або скрипт, який виконує ці дії.
Наприклад, є функціонал виведення новин, причому користувач може як додавати так і видаляти новини. Посилання на видалення новини має ось так.
www.site.ru/news/detail.php?ID=777&del=Y
Тепер якщо ми додамо пост на форум або блоги і додай картинку з посиланням,
string bitrix_sessid() - повертає ідентифікатор сесії, попередньо оброблений функцією md5.bool check_bitrix_sessid($varname='sessid') — повертає true, якщо вірна умова $_REQUEST[$varname] == bitrix_sessid(), інакше false.string bitrix_sessid_get($varname='sessid') — повертає рядок виду $varname=ідентифікатор сесіїstring bitrix_sessid_post($varname='sessid') — повертає рядок виду
Передача ідентифікатора сесії у формі
Передача ідентифікатора у засланні
Перевірка сесії
Таким чином зловмисник навіть якщо зробить пакість то нічого не станеться як ID сесії буде різний.
Вирішив додати в собі в блог, щоб довго не шукати в хелпі і просто не забувати робити таку перевірку.