您好我製作一個腳本,一世的連接代碼如何保護POST功能
在session_start();
class sqlcon {
private $ lochost =「127.0.0.1」;
private $ user_db =「root」;
private $ db_pass =「toor」;
private $ db_nnm =「whatsvedio」; mysql_connect($ this-> lochost,$ this-> user_db,$ this-> db_pass)或者die(「不能連接」);
mysql_select_db($ this-> db_nnm)或die(「Cant Select DB」);
}<br>
function sqlc(){<br>
$userad = $_POST['username'];<br>
$passad = mysql_real_escape_string($_POST["password"]);<br>
$sqll = "SELECT * FROM admins WHERE username='$userad' AND password ='$passad'";
addslashes($sqll);
$tquery = mysql_query($sqll);
$sqlln = mysql_num_rows($tquery);
if($sqlln == 1){
$_SESSION['username']="admin";
$_SESSION['password']="passadmin";
header("Location:adminpanel.php");
//remember me
}
else{}
}}$tnfez = new sqlcon; $tnfez->sqlc();
我怎麼能保護
$passad = mysql_real_escape_string($_POST["password"]);<br>
我嘗試使用MD5大號
$passad = md5(mysql_real_escape_string($_POST["password"]));
但是當我輸入用戶名和密碼發送一個錯誤在密碼
使用'mysqli_real_escape_string'了'i'代表和改進應該是更安全的方式。對於今天的標準,md5也不夠安全,使用'sha512'就像這樣'$ hash = hash('sha512',$ password);'並且每個mysql函數都應該是mysqli – Niels
if if $ hash = $ _POST [「password」 ]一個使用它連接然後錯誤的密碼需要加密$ _POST導致這樣的代碼可以給任何一個黑客它 –
MD5是[不安全](https://security.stackexchange.com/questions/19906/is-md5 -considered不安全)。這就是爲什麼我們有[密碼哈希](http://php.net/manual/en/function.password-hash.php) – Machavity