PDA

Դիտել ողջ տարբերակը : Անվտանգ ծրագրավորում



norayrx
26.02.2009, 14:22
Անվտանգ ծրագրավորում , Ով լավ կոդեր ունի թող գրի

Մի օրինակ իմ կողմից:






///////////հեռացնում ա մեզ ոչ պիտանի սիմվոլները

print StripSpecalChars($str);

$str = "Fu\t?u*ra\\\<\\mdfa:Be^n//////d//gf!f@dd`fgf////<'/er\\\\'sBi#gS\$co%re";

function StripSpecalChars($str)
{
$chars=array(
1 => "`",
2 => "!",
3 => "@",
4 => "#",
5 => "\$",
6 => "%",
7 => "^",
8 => "&",
11 => ")",
12 => "-",
13 => "=",
14 => "/",
15 => ">",
16 => "<",
17 => "}",
18 => "{",
19 => "]",
20 => ",",
21 => "'",
22 => " ",
23 => ":",
24 => ";",
25 => "*",
26 =>"?",
27 => "\t");

foreach($chars as $key => $value)
{
$str=str_replace($value, "", $str);
}
$str = preg_replace ("~(\.|\\\|\*|\?|\[|\ˆ|\]|\(|\\\$|\))~", "", $str);
return $str;
}

norayrx
26.02.2009, 14:36
Այս կոդը հակ անելու տրբերակ կա?




Validate_Login();

function Validate_Login()
{

if(empty($_POST["submit_login"]))
{
header("Location: ./"); exit;
}

if (!empty($_POST["username"]) && !empty($_POST["password"]) )
{
$user = StripSpecalChars(substr($_POST["username"],0,20));
$pass = mysql_real_escape_string(substr($_POST["password"],0,20));


print $query = "SELECT * FROM users WHERE username = '$user'";
$result = mysql_query($query) or die(mysql_error());
$num = mysql_num_rows($result) ;

if($num==1)
{
$row = mysql_fetch_array($result);

if (md5($pass) === $row["password"])
{
$_SESSION["username"] = $row["username"];
$_SESSION['userID'] = $row["userID"];
//header("Location: ./");
}else
{
$_SESSION['msg_error_login'] = MSG_LOGIN_ERROR;
//Header("Location: ./?action=login");
}
}else {
$_SESSION['msg_error_login'] = MSG_LOGIN_ERROR;
// Header("Location: ./?action=login");
}

}
else
{
$_SESSION['msg_error_login'] = MSG_LOGIN_ERROR;
// Header("Location: ./?action=login");
}

} /// end function



function StripSpecalChars($str)
{
$chars=array(
1 => "`",
2 => "!",
3 => "@",
4 => "#",
5 => "\$",
6 => "%",
7 => "^",
8 => "&",
11 => ")",
12 => "-",
13 => "=",
14 => "/",
15 => ">",
16 => "<",
17 => "}",
18 => "{",
19 => "]",
20 => ",",
21 => "'",
22 => " ",
23 => ":",
24 => ";",
25 => "*",
26 =>"?",
27 => "\t");

foreach($chars as $key => $value)
{
$str=str_replace($value, "", $str);
}
$str = preg_replace ("~(\.|\\\|\*|\?|\[|\ˆ|\]|\(|\\\$|\))~", "", $str);
return $str;
}

Ներսես_AM
26.02.2009, 14:56
Մոդերատորական: Կարելի է առնվազն ուշադիր լինել վերնագրում սխալներ թույլ չտալու համար: Երեկ նույնպես թեմա էիք բացել վերնագրում մի քանի տառասխալով:
Երկրորդ գոնե մի քանի բառով նկարագրեք ինչ կոդեր եք դնում որ քիչ թե շատ հասկանալի լինի:

Թեմայի վերնագիրը այս անգամ կուղղվի: