собственно, конкретно по тематике форума - Безопасность веб-интерфейсов. Вот вам интерфейс - http://vipavia.ru/links?add Попробуйте из спортивного интереса написать скрипт, который сам добавит хоть одну ссылку. Добавленной считается ссылка, когда ответ сервера не содержит ошибки. Если сразу раскусите, скажите в пм, усложню
я 0 в пхп потому хз как из Code: <script type='text/javascript'> var newVal = 997 - 8 * (532 / 440); $('#scrt').attr('value', newVal); + Code: <input type='hidden' name='secret_hash' id='scrt' value='dsfi7as8igqku2dqkqu_dgASDAU22UDBA-WJA2u8df==' /> получается Code: secret_hash=6426-09 но до тех пор, пока этот secret_hash величина постоянная, Set-Cookie: PHPSESSID=..........; path=/ , впариваемый браузеру при первом коннекте к странице - защитой не является. ) хотя обфускация процесса формирования куки на пхп действительно может временно помешать тем, кто его не знает)
# парсим my ($newVal) = $page =~ /newVal =([\d\-+\/\*\s\)\(]+);/; # считаем $newVal = eval($newVal); -- капча эффективней будет
Kaimi - напиши в приват, интересно до конца ли ты понял. Все остальные - как я и предполагал, защита работает. Ход ваших мыслей неправильный.
Видимо из формы делаешь вызов к changecs:function(){$('#s'+'c'+'r'+'t').attr('value', jprop); Я js практически не знаю, так что не могу сказать точно как работает скрипт
мне только одно не ясно почему секретный ключ у всех один =\\ что у ErrorNeo что у меня тогда в чём смысл этого ключа?
эмммм .. написало что сссылка добавилась PHP: <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://vipavia.ru/links?add'); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, 'linkemail=qwe%40qw.ww&linkbackhref=http%3A%2F%2Fqw21e.qw&linktext=qeqw12&linkhref=http%3A%2F%2Fqw.qw12&category=1&desc=hgjhgj&secret_hash=6426-09'); curl_setopt($ch, CURLOPT_COOKIEFILE, realpath(dirname(__file__)).'/'.'cook.txt'); curl_setopt($ch, CURLOPT_COOKIEJAR, realpath(dirname(__file__)).'/'.'cook.txt'); curl_setopt($ch, CURLOPT_AUTOREFERER, true); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1'); $response = curl_exec($ch); curl_close($ch); echo $response; ?> А можно так .. даже еси динамический будет ... PHP: <script type='text/javascript' src='http://vipavia.ru/jquery.js'></script> <script type='text/javascript'> var newVal = 751 - 0 * (494 / 469); $('#scrt').attr('value', newVal); </script> <form action="" method="POST"> <input type='hidden' name='secret_hash' id='scrt' value='0978141f8d5905ffef18e' /> <input type='submit' value='отправить' /> </form> <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://vipavia.ru/links?add'); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, 'linkemail=qwe%40qw.ww&linkbackhref=http%3A%2F%2Fqw21e.qw&linktext=qeqw12&linkhref=http%3A%2F%2Fqw.qw12&category=1&desc=hgjhgj&secret_hash='.$_POST['secret_hash']); curl_setopt($ch, CURLOPT_COOKIEFILE, realpath(dirname(__file__)).'/'.'cook.txt'); curl_setopt($ch, CURLOPT_COOKIEJAR, realpath(dirname(__file__)).'/'.'cook.txt'); curl_setopt($ch, CURLOPT_AUTOREFERER, true); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1'); $response = curl_exec($ch); curl_close($ch); echo $response; ?>
Читал, читал - да, защита очень сильная, потратил 1 минуту целую: Code: On Error Resume Next Set objIE = CreateObject("InternetExplorer.Application") ssilka = "http://vipavia.ru/links?add" objIE.Visible = True 'Если не надо ничего видеть, то поставить False objIE.Navigate ssilka While objIE.Busy WScript.Sleep 200 Wend Set objForm = objIE.Document.forms(0) objForm.elements("linkemail").value = "lala@lala.com" objForm.elements("linkbackhref").value = "/" objForm.elements("linktext").value = "ахуительная тут защита, да" objForm.elements("linkhref").value = "http://google.ru" objForm.elements("desc").value = "описание" objForm.submit 'objIE.Quit' закрываем браузер 'Set objIE = Nothing Wscript.Quit ' -выход и никаких кук, хешей и прочего яваскрипта
сделал ещё жестче кто осилит? 2 Pashkela да, тока что хотел уточнить что через пхп, а не яваскриптом и браузером)) в браузере то понятное дело всё само выполнится. это уже вторая часть защиты, которую пока ещё не сделал
Кто-кто, я опядь! Скрипт выше. Любой твой изыск обойдет, гы Браузер можно и убрать, это так, для наглядности objIE.Visible = FALSE
на php так на php: 1. Скрипт выше - 123.vbs 2. PHP: <?system('123.vbs');?> только что проверил на денвере - работает!
защититься можно только тестами тьюринга. любая другая защита сложна лишь в техническом исполнении, и создает только временные трудности. имхо.