Обучение/Помощь новичкам | Ид взлом дцмс
FSeven (11.08.2021 в 20:56)
Не всегда будет проходить защита от CSRF =D.
Сейчас начал набирать смс, через 5 минут закончил, но оператор дал мне иной ip)
Я не смогу отправить своё смс =D и его потеряю
Не всегда будет проходить защита от CSRF =D.
Сейчас начал набирать смс, через 5 минут закончил, но оператор дал мне иной ip)
Я не смогу отправить своё смс =D и его потеряю
Дык можно туда id пользователя пихнуть если была пройдена авторизация до этого
Ну вобще логика в этом есть по поводу набора наверно даже у себя сменю . Как то не думал в этом направлении
Mr.Max (11.08.2021 в 21:00)
Дык можно туда id пользователя пихнуть если была пройдена авторизация до этого
Дык можно туда id пользователя пихнуть если была пройдена авторизация до этого
Если не менять id и ТОКЕН, тогда CSRF не будет меняться, а это не есть хорошо.
FSeven (11.08.2021 в 21:06)
Если не менять id и ТОКЕН, тогда CSRF не будет меняться, а это не есть хорошо.
Если не менять id и ТОКЕН, тогда CSRF не будет меняться, а это не есть хорошо.
Почему ? time().time() , ключ и id добавить
________
посл. ред. 11.08.2021 в 21:08; всего 1 раз(а); by Mr.Max
Mr.Max (11.08.2021 в 16:37) По поводу CSRF этим болеет как правило POST запрос. Я себя защищаю так может кому пригодится : ТОКЕН генерирую : можно использовать конечно встроенные функции генератора вместо md5 но я этим не болею суть не меняется .... Проверять можно по куках или сессиях токен. Дабы не захаращивать лишний раз сервер сессиями я это делаю по куках . Форма отправки : Перед отправкой забиваем в куку токен : Время жизни куки 5 минут после токен мертвый! Ну и проверка формы что то типа;
А не проще генерировать случайный набор символов без всяких велосипедов через php
$CSRF = md5('ТУТ ВАШ КЛЮЧ'.time().preg_replace('/[^0-9.]/', '', $_SERVER['REMOTE_ADDR']).time()); php
<form action="" method="post"> <input type="text" name="login" required="" value=""> <input name="CSRF" type="hidden" value="<?=$CSRF?>"> <input class="button" type="submit" name="submit" value="Отправить"> </form> php
if(!isset($_POST['submit']) ? setcookie('token', $CSRF, time() + 300) : null); php
<? if(isset($_COOKIE['token']) != ОБРАБОТЧИК($_POST['CSRF'])): echo 'Токен проверки неверный или его срок истек!'; endif; ?> php
random_bytes()
Mr.Max , будет надежней привязат ь текущий токен к текущей сессии пользователя.
Для начала сформировать случайное имя пост запроса из 9 случайных символов: $token_name = substr(md5(rand(111111,999999)),0,9);
Далее сформировать данные запроса из 16 случайных символов $token_data = substr(md5(rand(111111,999999)),0,12);
И записать всё это в сессии. В итоге получится что-то вроде <input type="hidden" name="d26ys17bn" value="yqw123besc45hscp">
А при обработке отправляемого пост запроса уже проверять подпись на подлинность.
Если не хочешь дожидаться завершения текущей сессии у пользователя для генерации нового токена, ты можешь отловить успешно прошедший валидацию пост запрос и генерировать новый токен. А не менять каждый раз при обновлении страницы - это уже лишнее.
________
посл. ред. 11.08.2021 в 22:21; всего 1 раз(а); by 668582623
Для начала сформировать случайное имя пост запроса из 9 случайных символов: $token_name = substr(md5(rand(111111,999999)),0,9);
Далее сформировать данные запроса из 16 случайных символов $token_data = substr(md5(rand(111111,999999)),0,12);
И записать всё это в сессии. В итоге получится что-то вроде <input type="hidden" name="d26ys17bn" value="yqw123besc45hscp">
А при обработке отправляемого пост запроса уже проверять подпись на подлинность.
Если не хочешь дожидаться завершения текущей сессии у пользователя для генерации нового токена, ты можешь отловить успешно прошедший валидацию пост запрос и генерировать новый токен. А не менять каждый раз при обновлении страницы - это уже лишнее.
________
посл. ред. 11.08.2021 в 22:21; всего 1 раз(а); by 668582623
PAIN , да изобретать можно как угодно но суть то от этого не смениться .
________
посл. ред. 11.08.2021 в 23:07; всего 1 раз(а); by Mr.Max
________
посл. ред. 11.08.2021 в 23:07; всего 1 раз(а); by Mr.Max
668582623 , вариантов можно придумать уйму но ведь каждый пишет под себя как ему удобно :)
Mr.Max , то что я предложил довольно таки оптимальный вариант. Так-то в браузерах можно блокировать запись в куки - в таком случае твоя csrf защита тут же сломается.
________
посл. ред. 11.08.2021 в 23:15; всего 1 раз(а); by 668582623
________
посл. ред. 11.08.2021 в 23:15; всего 1 раз(а); by 668582623
Mr.Max (11.08.2021 в 23:06) PAIN , да изобретать можно как угодно но суть то от этого не смениться .
Ну так разработчики php стараются для вас, делают функции удобнее и безопаснее, а вы в 2021: php
<?php md5(time()); ?>