• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
با رعایت یکسری موارد ساده امنیت را در کد نویسی خود افزایش دهید
#1
سلام،
تصمیم دارم یکسری از نکاتی که رعایت اونا هم سادس و هم باعث افزایش امنیت میشه رو براتون بگم. البته از دوستان حرفه ای خواهش می کنم موارد ساده را ذکر کنن اگر خواستند همکاری کنن ، چون مسائل پیچیده خودش هرکدوم یک تاپیک میخواد ... ! مرسی پیشاپیش Heart
1) خودتون بهتر می دونید که چی باید بنویسید ، پس باید اول فکر کنید در مورد اون چیز که اول چی هست. و حالا که فلان هست به چی نیاز داره و حالا که نیاز هاشو تشخیص دادید باید ببینید برای افزایش امنیتش باید چیکار کرد؟ وقتی به این سوال می رسید که از خودتون پرسیدید ، همیشه یه مشکل بزرگ درونتون (درون آماتور ها) بوجود میاد که حالا من چیکار کنم؟ من که چیزی نمی دونم. اما شما خیلی چیز میدونید و اگر ندونید ما حتماً کمکتون می کنیم. ... فرض کنید یک فرمی دارید که یک رشته ورودی رو باید به پایگاه داده بفرسته. چون اون رشته ورودی هست و معلوم نیست که چی قراره وارد بشه ، پس باید بترسید از کاربرنتون. در این مثال همه اتفاق هایی که می تونه بیافته رو بررسی می کنیم. مثلاً ممکنه اون رشته دارای تگ یا کاراکتر های از پیش تعریف شده (مثل <strong>) باشه. چون اون رشته نباید دارای چنین کاراکتر هایی باشه پس ما باید اونا رو قبل ورود به جدول مربوط به خودش حذف کنیم. راه برای حذف کردن کاراکتر های خاص زیاده و هر کدوم ویژگی های خودشون رو دارن ولی همیشه باید بروز بود و از توابعی استفاده کنیم که میدونیم تا چند نگارش بعدی PHP هم ازش استفاده میشه. مثلاً برای حذف کاراکتر های خاص مثل تگ های html من از کد زیر استفاده می کنم:
کد پی‌اچ‌پی:
filter_inputINPUT_POST'field_name'FILTER_SANITIZE_STRING ); 
غایب
  پاسخ
تشکر شده توسط : wallfa
#2
2) حتماً قبل از ارسال اطلاعات به پایگاه داده از همه لحاظ ورودی رو بررسی کنید. مثلاً فرض کنید که یک فرم دارید با یک فیلد که مقدار ورودی اون فیلد باید حتماً رشته باشه و بس. پس باید حتماً بررسی کنید که اون مقدار ورودی عددی یا غیره نباشه یا اگر بود خطا بده. یا مثلاً باید بین کاراکتر های a تا z یا A تا Z و 0 تا 9 فقط باشه با کد زیر اون رو بررسی کنید:
کد پی‌اچ‌پی:
filter_var$_POST['field_name'], FILTER_VALIDATE_REGEXP, array( 'options' => array( 'regexp' => '/^[a-zA-Z0-9-_.]/' ) ) ); 

3) هرگز از متغیر $_GET برای ارسال اطلاعات به پایگاه داده ، ویرایش جدول یا حتی ایجاد استفاده نکنید تا نفوذگر متوجه آدرس نشه و همین باعث میشه یکم سر کار بمونه Cool
4) حتماً موقع بدست گرفتن یک کوئری ، دستوراتتون رو درست و کامل وارد کنید. خیلی ها ترجیح میدن داخل دابل کوتیشن متغیری رو وارد کنن ولی خود من مثل زیر همیشه عمل می کنم:
کد پی‌اچ‌پی:
mysql_query"SELECT `felan`, felani`, `khodam` FROM `tablename` WHERE `columnname` = '" $variable "'" ); 

5) با استفاده از فایل htaccess فایل هایی که کاربر نباید بهشون دسترسی داشته باشه یا اصلاً نیاز نیست که دسترسی داشته باشه با کد زیر ممنوع کنید:
کد:
<Files filename.php>
  order allow,deny
  deny from all
</Files>
غایب
  پاسخ
تشکر شده توسط : ahora wallfa


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان