idocsidocs
جمعه 25 شهریور 1390, 15:37 عصر
همونطور که می دونید هکر ها می تونن کدهای مخرب خودشون رو توی لینک سایتهایی که طراحی می کنیم قرار بدن و از این طریق کوکی های ما رو بدزند.
برای جلوگیری از این حمله، من این روش رو بکار می برم:
1- ابتدا توی htaccess لینکهای سایتم رو بصورت زیر تعریف می کنم. ( توجه کنید که فقط حروف و اعداد می تونن جز این لینک قرار بگیرن)
RewriteRule ^panel/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ panel.php?controller=$1&action=$2¶m1=$3 [NC,L]
اگر هکر کاراکتری غیر از حروف و اعداد توی لینکها گذاشته بود، کاربر رو به صفحه 404 می فرستم. توی صفحه 404 ابتدا کوکی های سایتم رو حذف می کنم و بعد خروجی رو تولید می کنم.
البته باید توجه کنید که صفحات سایت فقط باید با همین روش باز بشن و اگه هکر بتونه لینک سایت رو بصورت زیر باز کنه، این روش جواب نمی ده.
RewriteRule ^panel.php?controller=c&action=a¶m1=p [NC,L]
با این روش محدودیتهایی هم برای سایت ایجاد می شه، مثلا کاربر نمی تونه عبارتهای فارسی توی لینک قرار بده، اما به هرحال برای امنیت من توی لینکهای از عبارات فارسی استفاده نمی کنم.
2- از اونجاییکه روش بالا محدودیت داره، می شه از طریق کد زیر جلوی تزریق تگهای script به داخل url سایت رو گرفت. البته این کد جلوی رجیستر گلوبال و ارایه REQUEST رو هم می گیره.
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
از اونجاییکه این اولین آموزش من توی فرومهای فارسی هست، دوستان لطفا ایرادهای خودشون رو بیان کنن.
برای جلوگیری از این حمله، من این روش رو بکار می برم:
1- ابتدا توی htaccess لینکهای سایتم رو بصورت زیر تعریف می کنم. ( توجه کنید که فقط حروف و اعداد می تونن جز این لینک قرار بگیرن)
RewriteRule ^panel/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ panel.php?controller=$1&action=$2¶m1=$3 [NC,L]
اگر هکر کاراکتری غیر از حروف و اعداد توی لینکها گذاشته بود، کاربر رو به صفحه 404 می فرستم. توی صفحه 404 ابتدا کوکی های سایتم رو حذف می کنم و بعد خروجی رو تولید می کنم.
البته باید توجه کنید که صفحات سایت فقط باید با همین روش باز بشن و اگه هکر بتونه لینک سایت رو بصورت زیر باز کنه، این روش جواب نمی ده.
RewriteRule ^panel.php?controller=c&action=a¶m1=p [NC,L]
با این روش محدودیتهایی هم برای سایت ایجاد می شه، مثلا کاربر نمی تونه عبارتهای فارسی توی لینک قرار بده، اما به هرحال برای امنیت من توی لینکهای از عبارات فارسی استفاده نمی کنم.
2- از اونجاییکه روش بالا محدودیت داره، می شه از طریق کد زیر جلوی تزریق تگهای script به داخل url سایت رو گرفت. البته این کد جلوی رجیستر گلوبال و ارایه REQUEST رو هم می گیره.
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
از اونجاییکه این اولین آموزش من توی فرومهای فارسی هست، دوستان لطفا ایرادهای خودشون رو بیان کنن.