تالار گفتمان nCIS.ir

نسخه‌ی کامل: آیا pdo نیاز به کد های امنیتی داره که خدمون بنویسیم
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام و خسته نباشید.
من قبلا برای کار با دیتابیس با این دستورات کار میکردم.
mysql_connect();mysql_select_db();mysql_query();my  sql_fetch_assoc();

برای کد های بالا من این کد امنیتی رو نوشته بودم.


private function amniat($str){  $amniat=trim($str); $amniat=htmlspecialchars($amniat);  $amniat=strip_tags($amniat);    $amniat=mysql_real_escape_string($amniat);  return $amniat;}


حالا خواستم ببینم من دارم با pdo کار میکنم لازمه که کد های امنیتی رو اعمال کنم یا لازم نیست.
تو چند جا خوندم که pdo امنیت بالایی داره.
از چ لحاظ امنیت بالایی داره
خیلی ممنون
نه لازم نیست. خود PDO اگه با Prepared Statements کار کنید Escape میکنه. مثال:
$st = $con->prepare('SELECT * FROM `users` WHERE (LOWER(`username`)=:uname AND `password`=:pword' AND `confirmed`=:confirmed)');
$st->bindParam(':uname', strtolower($_POST['user']), PDO::PARAM_STR, 255);
$st->bindParam(':pword', $_POST['password'], PDO::PARAM_STR, 255);
$st->bindParam(':confirmed', $_POST['confirmed'], PDO::PARAM_INT);
$st->execute();

البته میتونید از bindValue هم استفاده کنید که تفاوتش با bindParam در اینه که bindParam فقط یه ارجاع ذخیره میکنه و وقتی execute رو صدا زدین، محاسبات انجام میشه (اگه بعنوان مقدار، بجای یه متغیر، فرمول خاصی گذاشته باشین) ولی bindValue همون موقع محاسبه میکنه.