Спойлер: Проба пера PHP: session_start(); if (filter_input(INPUT_POST, 'do') === session_id()) { session_regenerate_id(); echo 'Ok'; } ?> <!doctype html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title> Убиватель сраного спама </title> </head> <body> <form method="post"> <button name="do">Нажать</button> </form> <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script> <script> $('button').click(function () { $(this).val(/SESSw*ID=([^;]+)/i.test(document.cookie) ? RegExp.$1 : false); }); </script> </body> </html> Кто может курлом нажать кнопку и получить - Ok? Я пока что не смог, ЗНАЮ почему. p.s. буду благодарен, если кто-то нажмёт и пояснит - как
PHP: <pre><?php var_dump($_POST); ?></pre> <form method="post"> <button name="do">DO</button> </form> 1) атрибут value у кнопки отсутствует; 2) при чём здесь курл, вообще не понял.
1. ясен пень отсутствует, потому что он вставляется при нажатии на кнопку ))) 2. надо узнать, можно ли нажать данную кнопку курлом ))) то есть я знаю, что нельзя, но мало ли... --- Добавлено --- @MouseZver чёт не видно было одно время тебя, дароу
Кнопка на клиенте нажимается, подсадив вредоносное расширение с доступом к сайту можно. Курлом можно сделать запрос, имея доступ к кукам или угадав id сессии.
кнопка на клиенте нажимается нажатием на кнопку))) курлом нажми кнопку и получи - Ок))) ты если прочитаешь из заголовков SID то при отправке на той стороне будет уже другой SID потому что session_start() при каждом curl_exec генерит новый SID )))
Читаем доку по session_start(): > создаёт сессию, либо возобновляет существующую, основываясь на идентификаторе сессии, переданном через GET- или POST-запрос, либо переданный через cookie. Один раз curl'ом получили id сессии (ничего не передавая, скрипт сгенерит сам), второй раз передали его, чтобы "бздынькнуть" по кнопке.
возобновляет сессию у курла? ))) ну ты дядя даёшь))) session_start при каждом curl_exec генерит новый SID дядя)))
С чего это, если в запросе будет передан предыдущий session id? Уверен, что внимательно доку вычитал по session_start()?
а как ты ещё хотел?))) в одном выполнить забор заголовков и отправку назад?))) --- Добавлено --- ну это всё идеи и слова
Что значит "я хотел", мы тут твою задачу решали, нет? Тебе всё рассказали уже. Или у меня понималка перестала понимать )
OK PHP: <pre> <?php $url = 'http://localhost/form.php'; $ch = curl_init($url); $fp = fopen($url, "rb"); curl_setopt($ch, CURLOPT_FILE, $fp); //curl_setopt($ch, CURLOPT_COOKIE, 'somekey=value'); curl_setopt($ch, CURLOPT_HEADER, 1); //curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); //curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); $data = curl_exec($ch); curl_close($ch); fclose($fp); print_r($data); ?>
Видите ли, моё первое сообщение в этой теме касалось некоего вашего заблуждения. Нести в массы спам-скрипты я не подписывался. Но я всегда открыт для деловых предложений.
А главное, чем это отличается от того что если нажмет обычный пользюк???) открыли курлом - получили из кук ключ сессии следующим запросом и с использованием ранее полученных кук - "нажимаем" кнопку - по факту посылаем данные на определенный адрес для сервера это будет выглядеть так же как и пользователь P.S главный предпосыл вашего скрипта, что при каждом обращении к сайту через курл - у него будет новая сессия. Это если без использования и сохранения кук.. то да. А если с ними - защита пролетает