PDA

View Full Version : امنیت در Yii



under22
چهارشنبه 21 اسفند 1392, 20:23 عصر
با سلام
من یکسری مقادیر رو در صفحه با استفاده از chtml::encode چاپ کردم .
ولی وقتی کاربری بیاد درون مرور گر اون مقادیر رو بگیره و Inspect رو انخاب کنه و اون مقادیر من رو عوض کنه برای مثال کد html بزنه اون کد اجرا میشه برای مثال کد iframe باید چی کار کنم که امنیت سایت رو از این جور حملات تامین کنه؟؟؟؟؟
و بی زحمت دو سوال دیگه :
در YII برای انجام یک پروژه چه راه کار های امنیتی رو پیشنهاد می کنید؟؟؟
در تالار امنیت PHP نحوه جلوگیری از آپلود شل گفته شده است . میخاستم بدونم کلاس آپلود YII برای ما اینکارو انجام میده و این امنیت رو کامل انجام میکنه؟؟؟

MMSHFE
چهارشنبه 21 اسفند 1392, 21:12 عصر
درمورد بحث Inspect نه فقط Yii که هیچ برنامه سمت سروری چنین امکاناتی نداره ولی بهرحال Yii قابلیتهایی برای جلوگیری از CSRF و... داره که اینجا (http://www.yiiframework.com/doc/guide/1.1/en/topics.security) منبع خوبی برای رجوع هست.
درمورد سؤالات دیگه هم اگه مباحث امنیت مثل همون CHtml::encode یا Yii::app()->db->quoteValue یا Parameterized Query رو رعایت کنید، خود Yii بقیه مباحث امنیتی رو پوشش میده. کلاس آپلود Yii هم مثل یک کلاس معمولیه که فقط مدیریت آپلود رو راحتتر کرده و توی بحث امنیت آپلود بهتره موارد امنیتی مثل حذف پسوندهای چندگانه و استفاده از CFileHelper::getMimeType بجای getType معمولی استفاده کنید که MIME Type رو با استفاده از هدرهای فایل استخراج میکنه نه از روی پسوند.

under22
چهارشنبه 21 اسفند 1392, 21:15 عصر
این لینکی که شما دادید رو من کاملا رعایت کردم ولی بازم ولی متنی رو با encode یا با این ویجت که تو این لینک هست رو نوشتم ولی بازم
وقتی کاربری بیاد درون مرور گر مقادیر رو بگیره و Inspect رو انخاب کنه و اون مقادیر من رو عوض کنه برای مثال کد html بزنه اون کد اجرا میشه

MMSHFE
چهارشنبه 21 اسفند 1392, 21:33 عصر
شما همینجا هم بیاین با inspect یک متن رو تغییر بدین و کد JS واردش کنید. میبینید که کار میکنه. مهم اینه که داره روی سیستم شما کار میشه و اصل کار اینه که نتونید توی سورس کد سیستم که برای کلاینتها ارسال میشه، تغییری ایجاد کنید و مثلاً کوکی بقیه رو به سرقت ببرین وگرنه الآن اگه کد JS حاوی document.cookie و... رو اجرا کنید که برای یک URL خاص بفرسته، در اصل به کوکیهای خودتون دسترسی پیدا کردین. اما اگه سورس سرور حاوی چنین کدی باشه، کوکی همه کاربران رو به اون آدرس میفرسته. امیدوارم منظورم رو متوجه شده باشین و خوب توضیح داده باشم.

under22
چهارشنبه 21 اسفند 1392, 21:38 عصر
منظور شما رو متوجه شدم که منظورتون اینه که این کد درون سیستم شما هست و اهمیتی نداره . ببینید ولی وقتی رو این سایت این کارو انجام دادم خود کد html رو نشون داد و اجرا نکرد رو چند تا سایت دیگه هم امتحان کردم مثله سایت خود شما .
اصلا خود شما چطوری اینکارو کردید که این کد اجرا نشه

SlowCode
چهارشنبه 21 اسفند 1392, 22:30 عصر
چیزی که شما میگین اصلا نقص فنی نیست! اتفاقا ویژگی خوبی هست که مرورگرها مدتی هست که به developer ها دادن تا بتونن یه سایت رو به صورت نمایشی ظاهرش رو تغییر بدن.
این تغییرات هم فقط رو سیستم شما هست و اگه صفحه رو رفرش کنی از بین میرن.
یه چیز موقت هست.

اصلا خود شما چطوری اینکارو کردید که این کد اجرا نشه
چون این قابلیت مرورگر هست هیچ کسی نمیتونه جلوش رو بگیره.

under22
چهارشنبه 21 اسفند 1392, 22:36 عصر
پس چرا وقتی من رو این سایت کد iframe رو میزنم فقط این کلمه چاپ میشه ولی وقتی رو سایت خودم میزنم یک iframe باز میشه.
این شاید بخاطر اینه که سایت من رو localhoste هست اینطوری میشه؟؟

MMSHFE
شنبه 24 اسفند 1392, 01:44 صبح
شاید اینجا کدهای JS هست که iframe رو خنثی میکنه ولی برای مثال، من یکی از متنها رو انتخاب کردم و Inspect Element رو زدم و بعد روش کلیک راست کردم و توی قسمت Edit HTML نوشتم <script>alert('ok');</script> و پیغام بلافاصله ظاهر شد.