PDA

View Full Version : نظر و امتیاز شما در مورد این اسکریپت



mohammad-gh
دوشنبه 21 مرداد 1392, 21:21 عصر
با سلام
اسکریپتی وب سایتی رو با PHP نوشته ام که در نظر دارم به صورت سی ام اس (CMS) درآورم !
میخوام نظر شما رو در مورد امنیت و نقاط ضعف امنیتی و اگر شد رفع آن بدانم .
و در آخر امتیاز شما از 10 برای امنیت این اسکریپت چند است ؟

وب سایت : http://marmc.ir

SilverLearn
دوشنبه 21 مرداد 1392, 21:43 عصر
اولا سایتت برایم من که باز نشد
بعد ما چجوری از نظر امنیت نظر بدیم که دسترسی به فایلهای اسکریپتت نداریم دقیقا عایا؟

mohammad-gh
دوشنبه 21 مرداد 1392, 23:00 عصر
اولا سایتت برایم من که باز نشد
سایت داره باز میشه ، هم به صورت مستقیم و هم با استفاده از لینک

بعد ما چجوری از نظر امنیت نظر بدیم که دسترسی به فایلهای اسکریپتت نداریم دقیقا عایا؟
خوب منظور هم همینه که از بیرون نظر داده شود و الا من از نظر امنیت مواردی که به نظرم میرسیده رو در نظر گرفتم
یکی از توابعی که برای هر استرینگی در نظر گرفتم این تابع است ک


function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);

}
$str=htmlspecialchars($str);
return mysql_real_escape_string($str);
}

parsboy
دوشنبه 21 مرداد 1392, 23:11 عصر
با سلام
اسکریپتی وب سایتی رو با PHP نوشته ام که در نظر دارم به صورت سی ام اس (CMS) درآورم !
میخوام نظر شما رو در مورد امنیت و نقاط ضعف امنیتی و اگر شد رفع آن بدانم .
و در آخر امتیاز شما از 10 برای امنیت این اسکریپت چند است ؟
وب سایت : http://marmc.ir
باسلام، جای کارکه خیلی داره برای مثال یه نگاه به فرم تماس باما بندازید validation بسیارضعیف
است،برای مثال الان درقسمت نام میتونید اعداد هم ثبت کنید یا این که درفیلد عنوان میتونید تعداد زیادی کارکتروارد کنید
عنوان باید کوتاه باشه اصولا ، یا برای مثال قسمت آمارسایت با هربار Refresh آماربازدید افزوده میشه!
بازم میتونه بهتربشه ! به هرحال موفق باشید.

engmmrj
سه شنبه 22 مرداد 1392, 10:03 صبح
text box هات در صفحه ثبت نام خیلی بزرگه باید اندازه محتوای که قرار کاربر وارد کنه باشه .
text box از نظر گرافیک خیلی زشته !
موفق باشید .

2undercover
سه شنبه 22 مرداد 1392, 12:07 عصر
امتحان کردم باگ SQL Injection داره: اینجا (http://marmc.ir/viewnews.php?id=125 OR 1 = 1)

فرزند کوروش
سه شنبه 22 مرداد 1392, 13:30 عصر
خیلی نا امن هست با اینجکشن یوزرهاتو دراوردم
sananet
allexi
Nasir
afshin0702

پسوردهاشون هم هست..
رو اعتبار سنجی داده هایی که با متد گت دریافت میکنی بیشتر دقت کن

mohammad-gh
چهارشنبه 23 مرداد 1392, 13:58 عصر
و اعتبار سنجی داده هایی که با متد گت دریافت میکنی بیشتر دقت کن
من برای اعتبار سنجی داده هام از توابعی که نوشتم استفاده کردم
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);

}
$str=htmlspecialchars($str);
return mysql_real_escape_string($str);
}


میشه بگید برای اعتبار سنجی چه توابع یا راه حلهای دیگری رو باید بیارم

engmmrj
چهارشنبه 23 مرداد 1392, 15:16 عصر
از تابع زیر استفاده کن که تمام $_GET, $_POST روescape می کند :

function escape($value){if(!is_numeric($value)) {if(get_magic_quotes_gpc()) $value = stripslashes($value);return mysql_real_escape_string($value);}else return $value;}
array_map('escape' , $_GET, $_POST);

2undercover
چهارشنبه 23 مرداد 1392, 16:12 عصر
به نظر من بهتره کلا به جای استفاده از توابع mysql_* از PDO و Mysqli استفاده کنید!

mohammad-gh
چهارشنبه 23 مرداد 1392, 20:37 عصر
من وقتی در مورد mysqli تحقیق کردم فرق چندانی از لحاظ امنیت بینشون ندیدم
حالا اگر شما تجربه عملی یا مقاله ای در مورد امنیت اون دارید ممنون میشم بدید

engmmrj
چهارشنبه 23 مرداد 1392, 20:46 عصر
من وقتی در مورد mysqli تحقیق کردم فرق چندانی از لحاظ امنیت بینشون ندیدم
حالا اگر شما تجربه عملی یا مقاله ای در مورد امنیت اون دارید ممنون میشم بدید
شما وقتی از متد prepareاستفاده کنیدsql injection ندارید دیگه .
http://www.php.net/manual/en/mysqli.prepare.php

abolfazl-z
چهارشنبه 23 مرداد 1392, 21:57 عصر
دوستان اگر اسکریپت ما از یک راهی دیگه(به غیر از این را ها) هک بشه مقصر کیست ؟

abolfazl-z
چهارشنبه 23 مرداد 1392, 23:50 عصر
شما وقتی از متد prepareاستفاده کنیدsql injection ندارید دیگه .
یعنی امنیت اش بالا است ؟:متفکر:
پس چرا اشاره ای بهش نشده ؟ :متفکر:

AliRezaPro
پنج شنبه 24 مرداد 1392, 00:23 صبح
یعنی امنیت اش بالا است ؟:متفکر:
پس چرا اشاره ای بهش نشده ؟ :متفکر:

PDO بصوزت داخلی تمامیه موارد امنیتی رو در نظر میگیره , از این بابت میتونه خیالتون راحت باشه , وقتی هم از mysql یا mysqli استفاده کنید و کاراکتر ها رو اسکیپ کنید باز هم امکان داره که sql injection شما 100% نشه

abolfazl-z
پنج شنبه 24 مرداد 1392, 01:12 صبح
PDO بصوزت داخلی تمامیه موارد امنیتی رو در نظر میگیره , از این بابت میتونه خیالتون راحت باشه , وقتی هم از mysql یا mysqli استفاده کنید و کاراکتر ها رو اسکیپ کنید باز هم امکان داره که sql injection شما 100% نشه
یعنی متغیر رو بصورت مستقیم وارد کنیم مشکلی نیست ؟

2undercover
پنج شنبه 24 مرداد 1392, 09:34 صبح
اگه به صورت مستقیم وارد کنید فک نمی کنم PDO بیاد و مقادیری رو که به صورت مستقیم وارد کردید بررسی کنه. فقط وقتی که مقادیر رو با استفاده از Prepared Statement وارد می کنید PDO اون ها رو بررسی می کنه!

mohammad-gh
پنج شنبه 24 مرداد 1392, 23:33 عصر
من یه سوال شاید خارج از بحث دارم
به فرض که ما همه دستورات رو با mysql کار کردیم می تونیم برگردونیم و با mysqli انجام دهیم
و یا
میشه تعدادی رو با mysql و تعداد دیگری رو با mysqli کا رکنیم

AliRezaPro
جمعه 25 مرداد 1392, 01:33 صبح
یعنی متغیر رو بصورت مستقیم وارد کنیم مشکلی نیست ؟

درواقع وقتی از PDO استفاده میکنید , توابع پارامتری رو در دسترس قرار میده که میتونید از آنها بهره ببرید , در صورتی که در بقیه دیده نمیشه . برای همین سکیورتر و مطمئن تر است . اگر می خواید بصورت دایرکت مقادیر رو ارسال کنید هیچ فرقی با بقیه نداره

من یه سوال شاید خارج از بحث دارم
به فرض که ما همه دستورات رو با mysql کار کردیم می تونیم برگردونیم و با mysqli انجام دهیم
و یا
میشه تعدادی رو با mysql و تعداد دیگری رو با mysqli کا رکنیم
نه مشکلی نداره , اما برای یک دست شدن برنامه شما سعی کنید کلاسی تهیه کنید و با اون کار کنید