การเขียน WEB ส่วนของการ LOGIN เข้าสู่ระบบ

  ติดต่อ

ส่วนหน้า กรอก User Name กะ Password ผมข้อข้ามไปเลยนะครับ
ตัวแปรหลักที่ใช่ จะมี 2 ตัวแปรคือ $user และ $password

$user=$_POST["user"];
$pasword=md5($_POST["password"]);

วิธีแรกที่จะนำเสนอคือ คือ ตรวจสอบกับ DB ครับ
จะใช้ DB อะไรก็ได้ ผมจะนำเสนอ เฉพาะ SQL Command เท่านั้น

select username from user where user='$user' and password='$password';

เช่น MySQL
$query="select username from user where user='$user' and password='$password';";
$result=mysql_query($query);
$row=mysql_fetch_array($result);
if($row){
echo"Login ถูกต้อง";
}else{
echo"Login ไม่ถูกต้อง";
}

วิธีที่สองใช้ LDAP ตวจสอบ การเขียนโปรแกรมภาษา PHP เชื่อมต่อกับ LDAP SERVER(1)

function ldap_login($ds,$username,$password,$ou,$suffix){
$i=0;
while(1){
$binddn = "uid=$username,ou=".$ou[$i].",".$suffix;
@$ldapbind = ldap_bind($ds, $binddn, $password);
if ($ldapbind){
return true; // Login ถูกต้อง
break;
}else{
if($i==3){
ldap_close($ds);
return false; // Login ไม่ถูกต้อง
break;
}
}
$i++;
}
}

วิธีที่ 3 การใช้ pop3 ในการตรวจสอบ

$pop3_server ="pop3.simple.com";

@$sock=fsockopen('$pop3_server',110);

if(!$sock){
echo "
ติดต่อไม่ได้";
fclose;
exit;
}else{
$repy=fgets($sock,1024);

fputs($sock,"user $mail ");
$repy=fgets($sock,1024);

fputs($sock,"pass $password ");
$repy=fgets($sock,1024);

if ($repy[0]!="+"){

echo"alert('User หรือ Password ผิด กรุณา กรอก User หรือ Password ให้ถูกต้อง');";
fclose;
exit;
}else{
echo"alert('ยินดีต้อนรับ');";
fclose;
}
}

วิธีที่ 4 ใช้ IMAP ตรวจสอบ
if(@imap_open ("{192.168.0.1:143}","$user_name","$passwd")){
echo"ยินดีต้อนรับ";
}else{
echo"User หรือ Password ผิด";
}

 เมื่อดวงใจมีรัก
ดั่งเจ้านกโผบิน
บินไปไกลแสนไกล

หัวใจฉันก็ลอยลิบไป
ถึงแดนดินถิ่นใดนะใจ
โอ้ดวงใจเจ้าเอ๋ย

เมื่อต่างเราก็รัก
จักเกรงกลัวฉันใด
ใจเรานั้นแน่นอน

ขอให้เธอมั่นใจรักจริง
รักเธอจริงแน่ใจขอวอน
ก่อนตัดใจร้างลา

โอ้ ใจ รักเธอ คิดถึงเธอ เฝ้า ครวญหา
โอ้ ใจ นะเออ ไยละเมอ ถึงเธอ ร่ำไป

เมื่อดวงใจมีรัก
มอบแด่ใครซักคน
หมดทุกห้องหัวใจ

ขอให้เธอมั่นใจรักจริง
ฉันจะยอมมอบกายพักพิง
แอบแนบอิงนิรันดร์

โอ้ ใจ รักเธอ คิดถึงเธอ เฝ้า ครวญหา
โอ้ ใจ นะเออ ไยละเมอ ถึงเธอ ร่ำไป

เมื่อดวงใจมีรัก
มอบแด่ใครซักคน
หมดทุกห้องหัวใจ

ขอให้เธอมั่นใจรักจริง
ฉันจะยอมมอบกายพักพิง
แอบแนบอิงนิรันดร์

ขอให้เธอมั่นใจรักจริง
ฉันจะยอมมอบกายพักพิง
แอบแนบอิงนิรันดร์..

บันทึกนี้เขียนที่ GotoKnow โดย  ใน programmer programmer programmer

หมายเลขบันทึก: 9031, เขียน: , แก้ไข, 2012-06-10 06:33:28+07:00 +07 Asia/Bangkok, สัญญาอนุญาต: สงวนสิทธิ์ทุกประการ, ความเห็น: 3, อ่าน: คลิก

คำสำคัญ (Tags) #uncategorized

บันทึกล่าสุด 

ความเห็น (3)

nagarindkx
IP: xxx.12.74.6
เขียนเมื่อ 

ดีมากเลยครับ
แต่ ... ผมขอแสดงความคิดเห็นเพิ่มเติม ถือว่า รู้ไว้ใช่ว่าก็ได้นะครับ คือ การตรวจสอบ User/Password ด้วยการเก็บในฐานข้อมูลนั้น ก็มีช่องโหว่นะครับ เขาเรียกกันว่า "SQL Injection" คือ เคยโดนมาแล้ว ก็เลยเล่าให้ฟังครับ

$user=$_POST["user"];
$pasword=$_POST["password"];

แล้วสร้างตัวแปร query อย่างนี้

$query="select username from user where user='$user' and password='$password';";

 ลองคิดดู จะเกิดอะไรขึ้นถ้า

$user มีค่าเป็น %' or 1=1" ; //
$password มีค่าเป็น whatever

เมื่อแทนค่าแล้วจะได้ว่า

 $query = "select username from user where user='%' or 1=1" ; //' and password='whatever';";

ผมก็คือ จะคืนค่า true ให้ mysql_query ครับ

เอาเป็นว่า ก่อนจะรับค่าพวกนี้มา ให้ตรวจสอบอย่างให้มีช่องว่าด้วย หรือ พวกอักษรพิเศษพวกนี้ อาจเกิดช่องโหว่ได้ครับ

มี บาง website ที่หนุ่มๆชอบ (อ๊ะ ที่ไหนเหรอ ??? ) ก็ใช้วิธีการแบบนี้เหมือนกัน แต่เข็มงวดมาก ต้องจ่ายเงินสมัครสมาชิกก่อน แต่ทำไงได้อ่ะ อยากดู ก็เลยลอง crack ดู ปรากฏว่าได้ ตอนนี้เขาปิดไปแล้ว อด ฮืออออออๆๆๆ

สายลมแสงแดด
IP: xxx.12.74.5
เขียนเมื่อ 

ไม่มีการตรวจสอบครับ

เพราะตอน config PHP ได้มีการแก้ปัญหาเรื่องนี้แล้วครับ

ดูได้ที่
http://gotoknow.org

สายลมแสงแดด
IP: xxx.12.74.5
เขียนเมื่อ 

ไม่มีการตรวจสอบครับ

เพราะตอน config PHP ได้มีการแก้ปัญหาเรื่องนี้แล้วครับ

ดูได้ที่
http://gotoknow.org/linux