PDA

View Full Version : سوال: چند سوال امنیتی



sedamorde
یک شنبه 04 اسفند 1387, 11:46 صبح
دوستان من جستجو کردم اما جواب مناسبی پیدا نکردم. اگر سوالم تکراری لطفا بگید چه کلمه ای جستجو کنم!
من همیشه برای GET و POST از htmlspecialchars , htmlentities و addslashes استفاده میکنم :


$username = htmlspecialchars( htmlentities( addslashes( $_POST['username'] ) ) );

این کار خوب؟ آیا ترتیب استفاده از این توابع فرق داره؟

mysql_real_escape_string را جناب یعقوبیان گفته مشکل امنیتی داره! اما من دلیل مشکل را پیدا نکردم!
میشه یک نفر یک مثال از mysql_real_escape_string برای من بزنه!؟
مرسی

Yousha
یک شنبه 04 اسفند 1387, 16:26 عصر
از Link های پایین امضام استفاده کنید...

sedamorde
یک شنبه 04 اسفند 1387, 18:18 عصر
Yousha جان مرسی , این مطالب را من قبلا خوندم و واقعا مفید بود اما زیاد کمکی به من درباره سوالاتم نکرد!!؟

reddevil
یک شنبه 04 اسفند 1387, 23:35 عصر
دوست عزیز میتوانی در لینک زیر چند مثال خوب پیدا کنی
http://www.w3schools.com/PHP/func_mysql_real_escape_string.asp:تشویق:

smhnaji
دوشنبه 05 اسفند 1387, 00:09 صبح
دوستان من جستجو کردم اما جواب مناسبی پیدا نکردم. اگر سوالم تکراری لطفا بگید چه کلمه ای جستجو کنم!
من همیشه برای GET و POST از htmlspecialchars , htmlentities و addslashes استفاده میکنم :


$username = htmlspecialchars( htmlentities( addslashes( $_POST['username'] ) ) );

این کار خوب؟ آیا ترتیب استفاده از این توابع فرق داره؟

mysql_real_escape_string را جناب یعقوبیان گفته مشکل امنیتی داره! اما من دلیل مشکل را پیدا نکردم!
میشه یک نفر یک مثال از mysql_real_escape_string برای من بزنه!؟
مرسی
http://barnamenevis.org/forum/showthread.php?t=148752

sedamorde
دوشنبه 05 اسفند 1387, 09:55 صبح
مرسی از دوستان خوب :)
من هنوز نفهمیدم mysql_real_escape_string مشکل امنیتیش چیه؟ استفاده بشه یا نه؟
در ضمن من همیشه قبل از پرسش از بانک از ereg استفاده میکنم جون در 90% موارد نوع و تعداد ورودی ها را میدونم :


if(!ereg('^[a-z_A-Z]{1,15}$',$name))
{
die();
}

به نظر اساتید کمک به امنیت میکنه؟

__ziXet__
دوشنبه 05 اسفند 1387, 12:35 عصر
مرسی از دوستان خوب :)
من هنوز نفهمیدم mysql_real_escape_string مشکل امنیتیش چیه؟ استفاده بشه یا نه؟
در ضمن من همیشه قبل از پرسش از بانک از ereg استفاده میکنم جون در 90% موارد نوع و تعداد ورودی ها را میدونم :


if(!ereg('^[a-z_A-Z]{1,15}$',$name))
{
die();
}

به نظر اساتید کمک به امنیت میکنه؟
صد درصد!
mysql_real_escape_string هم تقریبا مثل addslashes عمل میکنه و یکسری از کارکترهای غیر مجاز رو هم اصلاح میکنه.
بیشتر برای جلوگیری از sql injection به کار میاد

saeidejafari
دوشنبه 05 اسفند 1387, 13:20 عصر
http://barnamenevis.org/forum/showthread.php?t=19410
http://barnamenevis.org/forum/showthread.php?t=134229
http://barnamenevis.org/forum/showthread.php?t=134824

saeidejafari
دوشنبه 05 اسفند 1387, 13:25 عصر
این هم لینک یه سری مقالات در این رابطه:
https://www.ircert.cc///articles/index.mno?&lang=fa&subsite=15&product=-1
https://www.ircert.cc///articles/archive.mno?&lang=fa&subsite=15&product=-1

abdonsd
دوشنبه 05 اسفند 1387, 18:06 عصر
اگه از php5 استفاده کنی اصلا لازم نیست از addslashes و stripslashez استفاده کنی
خودش اتومات تشخیص میده

__ziXet__
دوشنبه 05 اسفند 1387, 19:01 عصر
اگه از php5 استفاده کنی اصلا لازم نیست از addslashes و stripslashez استفاده کنی
خودش اتومات تشخیص میده
آره! خودش یه اسلش برای " یا ' یا کاراکترهای مشکل ساز میذاره!
اگه دوباره استفاده کنی شاید به مشکل هم بربخوری!
کلا تو php5 کمتر میشه injection انجام داد

sedamorde
دوشنبه 05 اسفند 1387, 21:55 عصر
آره! خودش یه اسلش برای " یا ' یا کاراکترهای مشکل ساز میذاره!
اگه دوباره استفاده کنی شاید به مشکل هم بربخوری!
کلا تو php5 کمتر میشه injection انجام داد

من php5 استفاده میکنم.


اگه دوباره استفاده کنی شاید به مشکل هم بربخوری!

یعنی addslashes و stripslashez نذارم و هر جا گذاشتمم پاک کنم؟؟

__ziXet__
سه شنبه 06 اسفند 1387, 10:29 صبح
ببین اگه شک داری میتونی خودت امتحان کنی!
شما یه آرگومان رو با GET بفرست به یه صفحه php بعد اونو متغیر رو چاپ کن.
حالا مقدار این متغیر رو از طریق url مثلا این بده: 'test'
خب میبینی که خودش یه اسلش قبل از ' گذاشته!
پس اگه از addslashes رو هم بذاری یه اسلش دیگه میذاره کنارش !

sedamorde
سه شنبه 06 اسفند 1387, 14:16 عصر
مرسی __ziXet__ جان , امتحان کردم! جالب بود
پس با این حساب من نتیجه میگیریم استفاده از mysql_real_escape_string ضروری نیست!
مرسی از همه دوستان که کمک کردن :)