الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أحمي نفسي من ثغرة sql

بدأه mr.assassin في 17 مايو 2014 · 2 رد · 985 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله

 

كبف أحمي نفسي من ثغرة sql في هذا الكلاس

<?php
session_start();

class mysql{
	
	private $localhost="localhost";
	private $db_user="root";
	private $db_password="vertrigo";
	private $db_name="sql";
	

function __construct(){
	$connect=mysql_connect($this->localhost,$this->db_user,$this->db_password);
	mysql_select_db($this->db_name);
	}
	
function sql(){
	$username=$_POST['username'];
	$password=$_POST['password'];
	
	mysql_real_escape_string($username);
	mysql_real_escape_string($password);
		
$sql="SELECT * FROM members WHERE name='$username' AND password='$password'";
$query=mysql_query($sql);
$num=mysql_num_rows($query);
if ($num==1){
	$_SESSION['username']="username";
	$_SESSION['password']="password";
	header("location:admin/admin.php");	    
	}
	
else{
	echo"اسم المستخدم أو الباسوورد خاطأ";
	}

	}
	
	}
		
$use=new mysql;
$use->sql();

?>

check.php

login.php

#2

السلام عليكم،

 

انصح استعمل PDO للاتصال بقاعدة البيانات باستخدام prepared statement

ملاحظة: mysql_connect تم التخلي عنها في الاصدارات الجديدة من PHP

 

لمعالجة هذا الكلاس قم بتعديل السطرين

mysql_real_escape_string($username);
mysql_real_escape_string($password);

لتصبح

$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);

تم تعديل هذه المشاركة بواسطة choclatboy في 18 مايو 2014 في 02:46

1
#3

لسلام عليكم و رحمة الله و بركاته

 

شكرا لك على تفاعلك مع ممشاكلي أخي ساعدتنب كثيرا^_^

مواضيع مشابهة