• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
غیر فعال کردن کدهای اجرایی
#1
سلام
دوستان من یک سیستمی نوشتم و حالا میخوام از نظر امنیتی تا اونجایی که مغز و دوستان یاری کنن این سیستم رو امن کنم

اول اینکه یک فرم ارسال نظر هست که تو دیتابیس از نوع text تعریف شده و کاربر داخل یک textarea هر چی بخواد مینویسه !

مثلاً میتونه کد زیر رو اجرا کنه ( <script> alert("hacked"); </script> )
که هر وقت صفحه ارسال نظر باز بشه یک msgbox باز میشه

لطفاً در مورد غیر فعال کردن کد ها راهنمایی کنید !

و چون در کل سیستم بیشتر همه صفحه هات و کارها با $_GET انجام میشه ممنون میشم در مورد کامل کردن امنیت ارسال های GET هم راهنمایی کنید
---------------------------------------------------------------------------
خدایا ، مگر می شود تو باشی و ما تنها باشیم ؟
  پاسخ
تشکر شده توسط :
#2
اگه شما طبق FIEO عمل کنی مشکلی پیش نمیاد
فقط کافی توابع این کار رو یاد بگیرید
مثل
htmlentities
strip_tags
و ...
  پاسخ
تشکر شده توسط : Alimokhlesi HiddeN
#3
سلام یه سواله که مدتها ذهن منو مشغول کرده و چون فکر میکردم که این سوال دوستمون هم هست برای همین اینجا سوالم رو می پرسم
من وقتی می خوام یک مورد رو ارجاع بدم به صفحه جدید(مثلا ادامه مطلب) اینجوری مینویسم
کد پی‌اچ‌پی:
<a href='selectcity.php?select=1&id=$row[id]'>".$row['city_name']."</a

و در صفحه جدید اینجوری اون رو میگیرم
کد پی‌اچ‌پی:
$sql=@"select * from addcity where id=$_GET[id] LIMIT 1"

ولی میدونم که این خیلی ناامنه .سوال من اینه که مثلا در این مورد برای امنیت بیشتر چی کار باید کرد؟
  پاسخ
تشکر شده توسط :
#4
از تابع mysql_real_escape_string استفاده کن

کد پی‌اچ‌پی:
<?php
$sql
="select * from addcity where id=%d LIMIT 1"
$sql=sprintf($sql,mysql_real_escape_string($_GET['id']));
?>
  پاسخ
تشکر شده توسط : molana HiddeN
#5
کد پی‌اچ‌پی:
id=%
ببخشید این %d رو اشتباه گذاشتین یا یه دستوره
  پاسخ
تشکر شده توسط :
#6
منوال sprintf رو ببین
اونجا توضیح داده

موفق باشی
  پاسخ
تشکر شده توسط : scooter molana
#7
در ادامه جواب yakoza:
در صورتی که خواستید از تابع strip_tags استفاده کنید، و نیاز به یک سری تگ ها مانند تگهای <b> یا <p> یا مثلاً <em> داشتید میتونید به اینصورت از این تابع استفاده کنید:
کد پی‌اچ‌پی:
strip_tags($your_text"<b><p><em>"); 
در این حالت شما به برنامه می گویید که تمام تگها را به غیر از تگ های ذکر شده را از متن مورد نظر حذف کند.
  پاسخ
تشکر شده توسط : Y.P.Y admin Eylia molana HiddeN
#8
سلام
دوستان من مثلاً یک textarea دارم که روش editor هم گذاشتم مثلاً niceditor

خوب وقتی من تو این textarea لینکی میزارم یا .... همرو غیر فعال میکنه چون از یک تابع استفاده میکنم برای جلوگیری از sql inject

ممنون میشم اگر کسی کلاس یا تابعی که کامل باشه و فقط یک سری تگ ها رو برای sql inject یا xss بسته باشه اینجا بزاره تا استفاده کنیم
---------------------------------------------------------------------------
خدایا ، مگر می شود تو باشی و ما تنها باشیم ؟
  پاسخ
تشکر شده توسط :
#9
(۱۳۸۸ مرداد ۰۲, ۰۵:۲۸ ب.ظ)yakoza نوشته: اگه شما طبق FIEO عمل کنی مشکلی پیش نمیاد

fieo منظورت "FEDERATION OF INDIAN EXPORT ORGANISATIONS" هستش دیگه Big Grin
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط : HiddeN


پرش به انجمن:


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