Garrey
03-13-2010, 10:59 AM
Hi, i have a code - but I have no idea is this secure or not. So I'm asking help for professionals that means You!
<?php
include 'mysql.php';
$access = 'bcdefiju';
$flags = 'a';
$show = '1';
$serverid = '1';
$sec = '2592000';
if(!in_array($_SERVER['REMOTE_ADDR'],
array('81.20.151.38', '81.20.148.122'))) {
die("Error: Unknown IP");
}
$secret = '';
if(!empty($secret) && !check_signature($_GET, $secret)) {
die("Error: Invalid signature");
}
$sender = $_GET['sender'];
$message = $_GET['message'];
function createRandomPassword() {
$chars = "abcdefghijkmnopqrstuvwxyz023456789";
srand((double)microtime()*1000000);
$i = 0;
$pass = '' ;
while ($i <= 7) {
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
$password = createRandomPassword();
$username = $message;
//get timestamp for past/future date I want
$pf_time = strtotime("+30 days");
//format the date using the timestamp generated
$kehtib = date("Y-m-d", $pf_time);
$password = createRandomPassword();
$oigused = Admin;
mysql_connect("$dbhost", "$dbuser", "$dbpass") or die(mysql_error()); mysql_select_db("$dbname") or die(mysql_error());
$query5 = mysql_query("SELECT * FROM amx_amxadmins WHERE username LIKE '%$username%'") or die(mysql_error());
if(mysql_num_rows($query5)) {
echo " Error! {$username} exists";exit;
}
$reply = "Username: $username Password: $password.";
echo($reply);
function check_signature($params_array, $secret) {
ksort($params_array);
$str = '';
foreach ($params_array as $k=>$v) {
if($k != 'sig') {
$str .= "$k=$v";
}
}
$str .= $secret;
$signature = md5($str);
return ($params_array['sig'] == $signature);
}
if(!$username){echo 'Username not inserted!!';exit;}
if(!$username){echo 'Password not inserted!';exit;}
$v = time();
mysql_query("INSERT INTO amx_amxadmins (username,password,access,flags,steamid,nickname,date,ashow,oigused,kehtib) VALUES('$username','$password','$access','$flags','','$username', {$v}, '$show','$oigused','$kehtib')");
mysql_query("INSERT INTO amx_admins_servers (server_id) VALUES ('$serverid')");
?>
Is this secure or how can i make this more secure? I mean like if someone posts to this code like " ' DROP ALL " or smth(mysql command) then it wont delete anything from database, just inserting data to database.
8-)
<?php
include 'mysql.php';
$access = 'bcdefiju';
$flags = 'a';
$show = '1';
$serverid = '1';
$sec = '2592000';
if(!in_array($_SERVER['REMOTE_ADDR'],
array('81.20.151.38', '81.20.148.122'))) {
die("Error: Unknown IP");
}
$secret = '';
if(!empty($secret) && !check_signature($_GET, $secret)) {
die("Error: Invalid signature");
}
$sender = $_GET['sender'];
$message = $_GET['message'];
function createRandomPassword() {
$chars = "abcdefghijkmnopqrstuvwxyz023456789";
srand((double)microtime()*1000000);
$i = 0;
$pass = '' ;
while ($i <= 7) {
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
$password = createRandomPassword();
$username = $message;
//get timestamp for past/future date I want
$pf_time = strtotime("+30 days");
//format the date using the timestamp generated
$kehtib = date("Y-m-d", $pf_time);
$password = createRandomPassword();
$oigused = Admin;
mysql_connect("$dbhost", "$dbuser", "$dbpass") or die(mysql_error()); mysql_select_db("$dbname") or die(mysql_error());
$query5 = mysql_query("SELECT * FROM amx_amxadmins WHERE username LIKE '%$username%'") or die(mysql_error());
if(mysql_num_rows($query5)) {
echo " Error! {$username} exists";exit;
}
$reply = "Username: $username Password: $password.";
echo($reply);
function check_signature($params_array, $secret) {
ksort($params_array);
$str = '';
foreach ($params_array as $k=>$v) {
if($k != 'sig') {
$str .= "$k=$v";
}
}
$str .= $secret;
$signature = md5($str);
return ($params_array['sig'] == $signature);
}
if(!$username){echo 'Username not inserted!!';exit;}
if(!$username){echo 'Password not inserted!';exit;}
$v = time();
mysql_query("INSERT INTO amx_amxadmins (username,password,access,flags,steamid,nickname,date,ashow,oigused,kehtib) VALUES('$username','$password','$access','$flags','','$username', {$v}, '$show','$oigused','$kehtib')");
mysql_query("INSERT INTO amx_admins_servers (server_id) VALUES ('$serverid')");
?>
Is this secure or how can i make this more secure? I mean like if someone posts to this code like " ' DROP ALL " or smth(mysql command) then it wont delete anything from database, just inserting data to database.
8-)