Нещо като... фантом!?

CosaNostra

Registered
Здравейте, колеги! Току-що се прибирам и виждам, в сайта ми има нов регистриран потребител, или по-точно фантом, понеже няма никаква информация за него.. нито никнейм, нито парола, нито мейл, нито IP ... :idea: :idea: :idea:
A тези неща се изискват при регистрация.. как е възможно да стане това и да се страхувам ли от хакерски атаки?
 
CosaNostra каза:
Здравейте, колеги! Току-що се прибирам и виждам, в сайта ми има нов регистриран потребител, или по-точно фантом, понеже няма никаква информация за него.. нито никнейм, нито парола, нито мейл, нито IP ... :idea: :idea: :idea:
A тези неща се изискват при регистрация.. как е възможно да стане това и да се страхувам ли от хакерски атаки?

Дай кода на формата за регистрация.Сиурно по някакъв начин е "заобиколил" проверките.
 
Код:
<form method="post" action="">
					<table>
						<tr><td>Username: </td><td><input type="text" name="username" class="field" value="" /></td></tr>
						<tr><td>E-mail: </td><td><input type="mail" name="mail" class="field" value="" /></td></tr>
						<tr><td>Password: </td><td><input type="password" name="password" class="field" value="" /></td></tr>
						<tr><td>Password2: </td><td><input type="password" name="password2" class="field" value="" /></td></tr>
					</table><br />
				<center><input type='checkbox' name="check" value="checked" checked='checked' /> <span>Съгласен съм с Условията за Ползване и съм над 16 години</center></span>
				<div class="button">
					<input type="submit" name="submit" value="" /><br />
				
				<?php
					if(isset($_POST['submit'])){
						$date_reg = date("d.m.Y H:i:s");
						$usernamereg = htmlspecialchars(addslashes($_POST['username']));
						$mailreg = htmlspecialchars(addslashes($_POST['mail']));
						$passreg = htmlspecialchars(addslashes($_POST['password']));
						$pass2reg = htmlspecialchars(addslashes($_POST['password2']));
						$sql = "SELECT * FROM users WHERE username = '$usernamereg'";
						$result = mysql_query($sql) or die (mysql_error());
						$broi = mysql_num_rows($result);
						if (!preg_match("/^[a-zA-Z0-9]+(_)?[a-zA-Z0-9]+$/", $usernamereg))
						{
							  echo "Непозволени символи!!!";
						} else {

						if($usernamereg == NULL || $mailreg == NULL || $passreg == NULL || $pass2reg == NULL){
							echo "Попълни всички полета!";
						} else if($broi > 0) {
							echo "Името е заето";
						} else if($passreg != $pass2reg){
							echo "Паролите не съвпадат";
						} else if (!strstr("$mailreg", "@") || !strstr("$mailreg", ".")) {
							echo "Невалиден email адрес";
						} else if (!isset($_POST['check'])){
							echo "Не си се съгласил с правилата";
						} else {
							$sql2 = "INSERT ZAQVKATA";
							mysql_query($sql2) or die (mysql_error());
							echo "<span style=\"color: #da0fe1;\">Добре дошъл, $usernamereg!</span>";
						}
						
						}
					}
				?>
 
ПРоверявах за разнербистта ба данните след като ги trim .
Името би трябвало да е повече от 3 знака, емйла 100 процента е над 5 знака. ( @ . (com,net,in,bg) ) = 4 знака + 1 един мин за домейн. И за име още 1 ...
За данните можеш да пуснеш една чек сума, която да проверява след като е изпратена заявката if(isset($_POST...) ) дали и сумата е същата като тази на данните които са изпратени.
 
$username = trim($_POST['username']);
$sizeUserName = strlen($username) ;
if($sizeUserName >3 && $sizeUserName < 32 )

{ echo " User name okey " ; }


$email = trim($_POSt['email']);

if(filter_var($email, FILTER_VALIDATE_EMAIL)) { echo " okey email " ; }


$password= $_POST['password1'];
$password2 = $_POST['password2'];
$sizePassword = strlen($password);
$hashPassword1 = md5(trim($_POST['password1']);

if( ($sizePassword >6 && $sizePAssword < 128) && $password === $password2 ) { echo "{$hashPassword1} is okey " ; }



$agree = (bool)$_POST['check'];
if($agree) { echo " syglasen s usloviqta "; }
 

Back
Горе