PDA

View Full Version : امنیت در واکشی اطلاعات



lockii
پنج شنبه 29 خرداد 1393, 22:42 عصر
سلام.
من برای درج اطلاعات دریافتی را ابتدا از این تابع :

function check($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; }

بعد هم از
mysqli_real_escape_string عبور میدم و به صورت :

$qry = mysqli_query($con,"INSERT INTO test_db (name) VALUES ('" . $name . "' )");
الان از نظر امنیتی موردی نداره دیگه ؟

2- بعد دوستان چند جا خوندم که برای جلوگیری از بعضی حملات باید داده هایی که از دیتابیس برای نمایش هم استحراج می کنیم یک نکاتی رعایت شود الان به طور معمول نمایش دادن مشکل داره ممنون میشم راهنمایی کنید

3-یک سئوال دیگر هم اینکه من الان با pdo کار کنم بهتر هست فعلا یا با همین mysqli (فعلا نمی خوام زیاد وارد شی گرایی بشم) موردی از نظر امنیتی ندارم ؟
با سپاس

lockii
یک شنبه 01 تیر 1393, 19:24 عصر
آپ تاپیک................

emadrezvani
یک شنبه 01 تیر 1393, 21:56 عصر
1. حداقل در حد جلوگیری پایه از sqlinjection گرفته شده است(نه blind sql)
2. حملاتی مانند xss,csrf,....
3.




PDO
MySQLi


Database support
12 different drivers
MySQL only


API
OOP
OOP + procedural


Connection
Easy
Easy


Named parameters
Yes
No


Object mapping
Yes
Yes


Prepared statements
(client side)
Yes
No


Performance
Fast
Fast


Stored procedures
Yes
Yes




بنده پیشنهاد میکنم همون mysqli ادامه بدید(اگه فقط mysql کار میکنید)

lockii
سه شنبه 03 تیر 1393, 19:49 عصر
ممنون.
یک سئوال کلی در مورد pdo
ببنید مثلا الان

$result->bindParam(':username', $_POST['username']);
که اجرا میشه کلا داده ارسالی username توسط کاربر کاملا امن میشه دیگه اینجا نیازی نیست چک کنیم با real یا تابع های دیگه ؟(کلا این فرآیند امن شدن دریافتی ها در pdo برای من سئوال هست)

emadrezvani
سه شنبه 03 تیر 1393, 20:41 عصر
در این پست جواب های خوبی میگیری:
http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string/12118602#12118602