PDA

نسخه کامل مشاهده نسخه کامل : مشکل در جلوگیری اجرای HTML



moz
25-11-2010, 04:16
سلام
من یک سایت راه انداختم برای دوستیابی از آی دی هست
مشکلش اینه که اگه طرف موقع ثبت نام ، نام خودش رو با کد HTML وارد کنه ، کد HTML اجرا میشه !!!!
من میخوام جلوی این کار رو بگیرم
یکی میتونه کمکم کنه؟:11:

L u K e !
25-11-2010, 10:46
خوب می تونی با استفاده از تابع strip_tag وارد کردن تگ ها رو محدود کنی یا با استفاده از تابع html entities چک کنی که اصلا کد html توش نیست
به نظر من اجازه ی استفاده کردن از هیچ تگی رو نده و همه ی ورودی هاتو با تابع htmlentite چک کن

moz
25-11-2010, 11:04
خوب چطوری این کار رو بکنم؟ :دی
مشکل من همینه
نمیدونم چطور این کار رو بکنم

hamedvahedi
25-11-2010, 12:23
در زمان درج در دیتابیس، مقدار نام رو با تابع htmlentities($name) پاس کن. اما باید توجه داشته باشي که این تابع کاراکترهای ويژه مثل > < رو تبديل ميکنه و نامي که در ديتابيس ذخيره ميشه با آنچيزي که کاربر وارد کرده از نظر ارزش رشته ای متفاوت ميشه. و فقط مرورگر در زمان نمايش نام، عبارتي را نمايش مي دهد که در ظاهر مشابه نامي است که کاربر وارد کرده.
به همين دليل اگر سيستم جستجو روي نام ميخواهي داشته باشي، بايد آنجا هم نام هايي که کاربر وارد مي کند را از اين رشته عبود بدهي.


<?php
$myCon = mysql_connect("Your-Server-Name","Your-Login-User","Your-Login-Password");
mysql_select_db("myDb", $myCon);
mysql_query("INSERT INTO myTbl (FirstName, LastName) VALUES ('".htmlentities($firstname)."', '".htmlentities($lastname)."')");
mysql_close($myCon);
?>

Bill Gates
25-11-2010, 13:47
سلام
قبل از ثبت مقدار رو به صورت زیر بگیر :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

تشکر//

moz
25-11-2010, 17:28
ممنون حل شد
اگه بخوام لینک فعال سازی بفرستم چی ؟ :دی