|
|
|
หน้า login ถ้า password มีสัญลักษณ์พิเศษจะไม่สามารถ login เนื่องจากเวลา $_post แล้วมี \ เพิ่มเข้ามา |
|
|
|
|
|
|
|
โดยปกติแล้ว password จะไม่นิยมนำค่า $_POST ที่รับมาจากฟอร์ม แล้วนำค่านั้นไปเช็คกับข้อมูลในฐานข้อมูลโดยตรงครับ ไม่ปลอดภัยเท่าไหร่ ควรมีการเข้ารหัส password ต่างๆ ก่อน
ตัวอย่างแบบง่าย
function clean($input){
$input = trim($input);
if( get_magic_quotes_gpc() ) {
$input = stripslashes($input);
}
#ตัด html tag
$input = strip_tags($input);
return $input;
}
$username = clean($_POST['user']);
$password = clean($_POST['pass']);
$password = md5($password);
$getData = $db->query(" SELECT * FROM user WHERE username = '$username' AND password = '$password' ");
// To do something
|
|
|
|
|
Date :
2022-03-22 16:26:14 |
By :
arm8957 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. ปัญหา \' หรือ \"
เกิดจาก magic quote ซึ่งเขาเลิกใช้งานไปนานแล้วและเอาออกแล้วใน PHP 5.4+. ถ้ายังใช้อยู่จะมีปัญหาต่อไปอีกในอนาคต และจะลามไปเรื่อยๆ. ให้ไปปรับ php.ini ไม่ให้ใช้ซะ แล้วก็ที่ยังมีอยู่เดาว่าคุณใช้ PHP รุ่นที่เก่าบรมเก่า ก็ไปอัพเดทใช้อันใหม่ๆได้แล้วนะครับ.
2. การเก็บรหัสผ่าน
ไม่ควรเก็บเป็น plain text แบบที่อ่านได้
ไม่ควรใช้ hash function แบบเก่าๆเช่น md5(), sha1(), ฯลฯ อะไรพวกนี้ เพราะมัน crack ได้แล้ว ไม่มีการป้องกันแบบหน่วงเวลาเหมือนพวกของใหม่ๆอีกด้วย
แนะนำให้ใช้ password functions ของใหม่ ซึ่งจะเลือกใช้ algorithm แบบใหม่ๆได้เมื่อมันออกมา และยังกำหนด cost, memory cost, time cost, threads ได้ด้วย. การปรับปรุงผู้ใช้เดิมที่ใช้ algo เก่าๆไปใช้ algo ใหม่ก็ทำได้เลยแบบราบรื่นกว่า. ทั้งหมดโดยย่อก็คือปลอดภัยกว่ากันมาก.
นอกจากนี้แนะนำเพิ่มเติมเกี่ยวกับนโยบายการรับและเก็บรหัสผ่าน ให้ไปอ่านเพิ่มเติมเป็นแนวทางเลือกปรับใช้ตามเหมาะสม.
|
|
|
|
|
Date :
2022-03-22 17:01:33 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|