[Guide] Код за сигурност / против ботове /

0bsessed

New Member
Joined
Jul 18, 2010
Messages
147
Reaction score
29
На практика можете да го видите тук: Цък .
Използва се за контакт форми, регистрация и др, които използват метод POST
създавате файл code.php:

or ($i=0; $i<$max_chars; $i++) {
$random = mt_rand(0, $count);
$rand .= $simwoli{$random};
}
$_SESSION['image_random_value'] = md5($rand);
$image = imagecreate(60, 22);
$bgColor = imagecolorallocate ($image, 255, 255, 255);
$textColor = imagecolorallocate ($image, 102, 102, 102);
imagestring ($image, 6, 4, 4, $rand, $textColor);
header('Content-type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
?>


следващото го пишете във формуляра, там където да се показва кода:

Код за сигурност: <img src="code.php"/>
Въведи кода: <input type="text" name="randimage_txt" maxlength="6"/>


и последно, във файла, който обработва заявката:

if( md5( $_POST['randimage_txt'] ) != $_SESSION['image_random_value'] ){
print'Объркахте кода за сигурност. Моля опитайте отново!';
}
else{
//код, който да се изпълни ако секретния код е вярно попълнен
print'Кода за сигурност е верен.';}


За да стане и за GET метод този ред:

if( md5( $_POST['randimage_txt'] ) != $_SESSION['image_random_value'] ){

се променя с този:

if( md5( $_GET['randimage_txt'] ) != $_SESSION['image_random_value'] ){
 
Last edited by a moderator:
туй не е ли на анхимилатор от уеб-турист-а ? и може ли да се направи без сесии една капча?
 
Може и да се измисли нещо, но със сесиите е най-удачно.
 
Може и да се измисли нещо, но със сесиите е най-удачно.

прав си човек обаче имам проблем исписвами че имам започната сесия някаде вече и неможели да се модифицира вече хеадера ....... някви измислици бъганясава работа пак не съм почнал сесия никаде .. можеш ли да ми дадеш код без сесий с 2 отделни файла 1-я за проверка с субмит бутон към друг файл демек надявам се да съм се изразил разбираемо
 
прав си човек обаче имам проблем исписвами че имам започната сесия някаде вече и неможели да се модифицира вече хеадера ....... някви измислици бъганясава работа пак не съм почнал сесия никаде .. можеш ли да ми дадеш код без сесий с 2 отделни файла 1-я за проверка с субмит бутон към друг файл демек надявам се да съм се изразил разбираемо

сложи това ob_start() в най горната част в index.php файла точно след <?php
и ако нямаш сложи след него session_start()
 
  • Like
Reactions: kosta
сложи това ob_start() в най горната част в index.php файла точно след <?php
и ако нямаш сложи след него session_start()

благодаря ти а да те попитам сесиите съм чел някъде че имали флагове в смисъл слагали се някви' защитни флагове ли нещо такова да си чувал?
 
благодаря ти а да те попитам сесиите съм чел някъде че имали флагове в смисъл слагали се някви' защитни флагове ли нещо такова да си чувал?

почти съм сигурен че сесиите нямат флагове

колкото до защитата им просто филтрирай данните преди да ги сложиш в дадена сесия
 
почти съм сигурен че сесиите нямат флагове

колкото до защитата им просто филтрирай данните преди да ги сложиш в дадена сесия

прав си нямат флагове се оказа апък аз съм се сбъркал със session-ските cookie-та secure httponly flag-a или нещо подобно :)
btw: благодаря ти за бързите отговори