مشاهده نسخه کامل
: Xss چیست؟ و راههای مقابله با آن
David.Jn
21-07-2008, 18:53
کاربرای خودتون ایمن کنید :10:
XSS یا همونCSS که مخفف کلمه Cross Site Scripting می باشد یکی از انواع حملات به وب سایت ها می باشد که در این نوع کاربران مورد هدف واقع می شوند
خودتون میدونید CSS مخفف کلمه Cascading Style Sheat هستش متخصصین کامپیوتر برای جلو گیری از اشتباه نام XSS را برای این نوع حمله انتخاب کردند.
پس از اینکه صفحات حالت پویا به خود گرفت نفوذگرها پی به یکی از حفره های اینگونه سایت ها بردند
این حفره بیشتر زمانی رخ می دهد که سایت اطلاعات کاربر را توسطQuery string از کاربر درخواست کند
برای مثال :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا نفوذ گر میتونه به جای اون عبارت اسکریپت خودش را بنویسه
مثل این:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این یه مثال ساده بود که فقط نفوذ گر کد html را نوشت
حالا اگه بخواد کوکی های کاربرا را هم بگیره به راحتی میتونه اینکار را انجام بده
مثلآ فرض کنید یک سایت برای اینکه کاربراش دیگه نام کاربری و رمز عبور را وارد نکنن یه گزینه گزاشته به نام مرا به خاطر بسپار.
وقتی کاربر روی این گزینه کلیک میکنه سایت cookie روی سیستم کاربر ذخیره میکنه و هر بار که کاربر صفحه سایت را باز میکنه سایت این کوکی را میخونه و به وی اجازه ورود میده
حالا نفوذ گر کد زیر را اعمال میکنه
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
چه راحت!!!!:5:
حالا بعضی ها میگن ای آقا کوکی ما به چه درد اون میخوره
بله اگه عضو سایتی باشید که اصلآ امکاناتی به اعضا نداده باشه گفته شما درسته
حالا شما حساب کن این نفوذ گر اسکریپتشو به سایت یکی از بانکها اعمال کرده باشه که نفوذ پذیره اونوقت چی میشه...
میتونه این کوکی ها را استفاده کنه و یه دستبرد جانانه به حساب کاربران بزنه
بیچاره صاحب حساب روحشم خبر نداره:13:
یه نمونه دیگش اینه که یه سایت این امکان را داده که کاربرا بتونن مقالات خودشون در سایت قرار بدن
خوب سایت میاد برای اینکار یه فرم ورود اطلاعات میزاره که کاربران مطالب خودشونو در اون قرار بدن
حالا کاربر نفوذگر میاد عنوان مطلب را میزاره و تو متن مقاله یه لینک هم میزاره به این صورت
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا کاربر بیچاره قربانی میشه و کوکی را به نفوذگر تحویل میده
خوب تا اینجا فکر کنم همه متوجه شدن که این تاپیک قصدش چیه
tabriz-info
21-07-2008, 19:06
بهتر بود تو مقاله اموزشی هک باشه
tabriz-info
21-07-2008, 19:07
xss وقتی به وجود میاد به برنامه نویس یک خطایی در برنامه نویسی کرده باشه و هکر بتونه از طریق utl و اینجکت کد به سایت نفوذ کنه
David.Jn
21-07-2008, 19:25
بهتر بود تو مقاله اموزشی هک باشه
درسته این موضوع ربطی به هک هم داره ولی ما میخوایم برنامه نویسای ما از این موضوع مطلع بشن و سایتهای خود را با استفاده از ترفندهایی ایمن کنند
xss وقتی به وجود میاد به برنامه نویس یک خطایی در برنامه نویسی کرده باشه و هکر بتونه از طریق utl و اینجکت کد به سایت نفوذ کنه
نخیر منظور شما XXS Injection هستش ؟
اگه اینه که این نوع حمله جوریه که قبلآ کدها در صفحه درج شده باشند یعنی از طریق url نباشه
tabriz-info
21-07-2008, 19:54
Xss injection دیگه چیه اونی که شما گفتید SQL injection هست
من در مورد xss توضیح دادم اگه در مورد xss میخوای بیشتر بدونی چند تا مقاله نوشتم اگه تو انجمن های هک بگردی پیدا میکنی
neopersia
21-07-2008, 19:57
چرا دعوا میکنین! این تاپیک هم به هک مربوطه و هم برنامه نویسی وب
اما با توجه به اینکه خیلی از کسانی که دارن برنامه نویسی وب یاد میگیرن اطلاعی از این نوع حمله ندارند و بعضاً در مورد دلیل استفاده بعضی از توابع توی کد ها سوال میکنند به نظرم فکر خوبی بود که یه تاپیک توی این بخش داشته باشیم که دوستان استفاده کنند.
اگر هم دوستانی که با تجربه ترند راه حلهای جلوگیری از این حمله رو در زبانهای مختلف بگن عالی میشه.
منم فرصت کنم میام که هم یه چیزی یاد بگیرم و هم اگه تونستم یه سری توابع رو که در این مورد کاربرد داره (البته فقط php رو بلدم) بگم. :)
siavosh1
21-07-2008, 20:24
موضوع خوبی هست که فکر کنم بیشتر به درد برنامه نویس ها بخوره ( چون هکرها خود به خود این چیزا رو میدونن):21: از بچه ها حتماً میخوام این تاپیک رو ادامه بدن
خوب یه راه اینه که اطلاعات رو سریال سازی کرد . وقتی سریال سازی بشه دیگه قابل خوندن نیست و اگر هم اطلاعات مخربی رو هم بخواد بده چون سریال سازی نشده واسه سیستم معنی و مفهومی نداره . ولی این هم تا حدودی جلوی خراب کاری رو میگیره !! چون اگر هکر یه درجه حرفه ای تر باشه میتونه اطلاعات رو رمز گشایی بکنه و بازم خر رو جای قناری قالب کنه:31:
ولی با کدگذاری توسط الگوریتم های پیچیده دیگه کمتر کسی میتونه این اطلاعات رو دستکاری کنه:10:
pezhman32
21-07-2008, 20:48
سلام
مبحث بسیار خوب و مفید و مهمی هست
یه مقاله ی فارسی مختصر:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این راه یکی از مهمترین راه های هک کردن سایت هاست. در ضمن با استفاده از xss یک هکر می تونه به راحتی حفره های برنامه رو پیدا کنه و از اونا استفاده کنه
David.Jn
21-07-2008, 21:12
Xss injection دیگه چیه اونی که شما گفتید SQL injection هست
من در مورد xss توضیح دادم اگه در مورد xss میخوای بیشتر بدونی چند تا مقاله نوشتم اگه تو انجمن های هک بگردی پیدا میکنی
ببین دوست عزیز نمیخوام تاپیک منحرف بشه
ولی...
Xss injection یا Code injection هم وجود داره اما در این روش دیگه از طریق url نفوذ گر حمله نمیکنه بلکه کدش را در خود صفحه inject میکنه
برای مثال نفوذ گر میاد از طریق یه فرم مخفی اطلاعات مورد نیازش را از کاربر میگیره و ازشون استفاده میکنه
من هم از دوستانی که در این مورد تجربه دارن دعوت میکنم این تاپیک را منور کنن
siavosh1
21-07-2008, 22:30
سلام
مبحث بسیار خوب و مفید و مهمی هست
یه مقاله ی فارسی مختصر:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید راه یکی از مهمترین راه های هک کردن سایت هاست. در ضمن با استفاده از xss یک هکر می تونه به راحتی حفره های برنامه رو پیدا کنه و از اونا استفاده کنه
مطلب کوتاه و مفیدی بود :46:
neopersia
21-07-2008, 22:53
دو تا مقاله مفید هم در مورد XSS در بخش مقالات p30world هست که خوندنشون میتونه مفید باشه:
آشنايي با حملات Xss و هك كردن سايت ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
تا جایی که من میدونم مشکل وقتی بروز پیدا میکنه که اطلاعات کاربر رو بدون فـیـلتر کردن نمایش بدیم.
راه حلش هم تا حدی مشخصه. باید اطلاعاتی که از کاربر گرفته میشه در صورتی که قراره تو صفحه نمایش داده بشه رو چک کنیم و جلوی نمایش مطالب بی اعتبار رو بگیریم.
یا اینکه همه مطالب وارد شده رو به معادل html اونها (html entity) تبدیل کنیم که قابلیت اجرا شدن در مرورگر رو نداشته باشند
pezhman32
21-07-2008, 23:25
دو تا مقاله مفید هم در مورد XSS در بخش مقالات p30world هست که خوندنشون میتونه مفید باشه:
آشنايي با حملات Xss و هك كردن سايت ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
تا جایی که من میدونم مشکل وقتی بروز پیدا میکنه که اطلاعات کاربر رو بدون فـیـلتر کردن نمایش بدیم.
راه حلش هم تا حدی مشخصه. باید اطلاعاتی که از کاربر گرفته میشه در صورتی که قراره تو صفحه نمایش داده بشه رو چک کنیم و جلوی نمایش مطالب بی اعتبار رو بگیریم.
یا اینکه همه مطالب وارد شده رو به معادل html اونها (html entity) تبدیل کنیم که قابلیت اجرا شدن در مرورگر رو نداشته باشند
این فقط یه جنبه ی قضیه ست, شما فرض کن ورودی از url شما یا داده ی فرم کاربر مستقیم بخواد در query بانک اطلاعاتی شما شرکت داده بشه, اونوقته که هرکاری بخواد می تونه با بانک اطلاعاتی شما بکنه
Xss injection یا Code injection هم وجود داره اما در این روش دیگه از طریق url نفوذ گر حمله نمیکنه بلکه کدش را در خود صفحه inject میکنه
من این وسط هیچ کاره ام و چاکر همه
ولی این دو تا چه فرقی می کنند؟
خب وقتی شما یه می خوای inject کنی، از فرم استفاده می کنی. که اون هم با url فرقی نداره (چه post و چه get) حالا بماند که با فایل فلش هم میشه
این فقط یه جنبه ی قضیه ست, شما فرض کن ورودی از url شما یا داده ی فرم کاربر مستقیم بخواد در query بانک اطلاعاتی شما شرکت داده بشه, اونوقته که هرکاری بخواد می تونه با بانک اطلاعاتی شما بکنه
میشه این رو توضیح بدی؟
خب وقتی که به دیتابیس وصل بشه، دیگه javascript کاری نمی تونه بکنه، اونجا حملات sql injection وجود داره که برای اون هم تابع آماده موجوده
Bill Gates
22-07-2008, 00:44
تابع اون چیه؟ :31:
tabriz-info
22-07-2008, 09:35
خوب اینجاست که تفاوت get , post مشخص میشه
و معلوم میشه یه برنامه نویس حرفه ای کی از این دو تا دستور استفاده میکنه
تابع اون چیه؟
mysql_real_escape_string
خوب اینجاست که تفاوت get , post مشخص میشه
و معلوم میشه یه برنامه نویس حرفه ای کی از این دو تا دستور استفاده میکنه
میشه بیشتر توضیح بدی؟
من ادعای حرفه ای بودن ندارم ولی فکر نمی کنم این دو تا فرق زیادی داشته باشند
tabriz-info
22-07-2008, 10:57
البته حرف حرف ادعا کردن نیست من هم هیچ ادعایی ندارم و فکر میکنم اگه اینطوری پیش برم تا 60 سال دیگه میشم حرفه ای
اما در مورد تفاوت این دو
شما که میفرمائید هیچ فرقی ندارن بهتره یک برنامه بنویسید که در یکی از یک دستور و در دیگری از اون یکی دستور استفاده کنید
اونوقت ببینید که چطور یه هکر از این اشتباه سو استفاده میکنه
البته من بیشتر مقالات انگلیسی در این مورد خوندم ولی الان براتون تا چند دقیقه دیگر با مثال توضیح میدم
tabriz-info
22-07-2008, 11:03
البتهاین رو هم اشاره کنم که یک هکر سعی میکنه از post سو استفاده کنه
چون اگر از طریق post هک کنه هیچ log ثبت نمیشه و نمیشه پی گیریش کرد
tabriz-info
22-07-2008, 11:08
به این مثال توجه کنید :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خوب من اگه یه همچین کدی رو تو سورس یک سایت php ببینم سرع این کارو میکنم
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
tabriz-info
22-07-2008, 11:12
اینم براتون پیدا کردم »:
یه تفاوتشون اینه که متد Post اطلاعات رو در چند فیلد قرار میده اما متد Get پارامتر ها رو در انتهای URL اضافه میکنه.
مثلا سایت یاهو از متد Get استفاده میکنه که اون هم اینکریپت هست.
بیشتر برنامه نویس ها ترجیح میدن از متد post استفاده کنند.
اگر از متد Get استفاده میکنید حتما اون رو اینکریپت کرده و چک نمایید
pezhman32
22-07-2008, 11:44
من این وسط هیچ کاره ام و چاکر همه
ولی این دو تا چه فرقی می کنند؟
خب وقتی شما یه می خوای inject کنی، از فرم استفاده می کنی. که اون هم با url فرقی نداره (چه post و چه get) حالا بماند که با فایل فلش هم میشه
میشه این رو توضیح بدی؟
خب وقتی که به دیتابیس وصل بشه، دیگه javascript کاری نمی تونه بکنه، اونجا حملات sql injection وجود داره که برای اون هم تابع آماده موجوده
مثال توی خود سایت php با یکمی نغییر :
An example SQL Injection Attack
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداینجا فقط می گرده و چند تا یا چند صد هزار تا پسورد رو چک می کنه, اما شما فکر کن که بیاد و با همین روش یه جدول یا کل دیتابیست رو پاک کنه...
pezhman32
22-07-2008, 11:56
راستی یه نکته:
خیلی از برنامه نویسای تازه کار میرن و از php.ini مقدار register_globals رو آن می کنن (حتی بعضی کتاب های آموزش php هم به اینکار توصیه می کنن) و مثلا" بجای $_GET['var'] یا $_POST['var']از $var استفاده می کنند و همین موضوع می تونه به راحتی موجب هک شدن سایت بشه, خود سایت php هم تاکید بسیار داره که کاربران register_globals رو آن نکنن و می خواد در ورژن های آینده به کل این register_globals رو برداره (طی آخرین اخبار هوای امروز کشورمان ... :دی)
tabriz-info
22-07-2008, 12:00
راستی یه نکته:
خیلی از برنامه نویسای تازه کار میرن و از php.ini مقدار register_globals رو آن می کنن (حتی بعضی کتاب های آموزش php هم به اینکار توصیه می کنن) و مثلا" بجای $_GET['var'] یا $_POST['var']از $var استفاده می کنند و همین موضوع می تونه به راحتی موجب هک شدن سایت بشه, خود سایت php هم تاکید بسیار داره که کاربران register_globals رو آن نکنن و می خواد در ورژن های آینده به کل این register_globals رو برداره (طی آخرین اخبار هوای امروز کشورمان ... :دی)
کاملا درسته
همیشه باید دقت کنید به
register global
magic quata
safe mode
با اجازه تون من talk رو دوباره بگیرم دستم:
تو پست 19 مثالی بود (میشه یه کم بد صحبت کنم؟ آخه باعث قدرت گرفتم حرفم میشه، لطفاً ناراحت نشید)
همین کار رو با post هم میشه کرد
کافیه این رو تو 1 صفحه ی html ذخیره کنید و روی کامپیوترتون اجرا کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دقیقاً شد همون کار بالا با متد post
راستی یه نکته:
خیلی از برنامه نویسای تازه کار میرن و ...
عزیز دل برادر، این راه ها هیچکدوم باعث نمیشه که کارت خراب شه.
قدرت برنامه نویسی رو دست کم نگیر.
این مشکلات فقط در اولین و دومین کارت دیده میشه و از اون به بعد دیگه دستت راه می افته و بدون bug می نویسی
ببخشید که تند حرف زدم، خودم رو نمی بخشم :دی
pezhman32
22-07-2008, 12:51
با اجازه تون من talk رو دوباره بگیرم دستم:
تو پست 19 مثالی بود (میشه یه کم بد صحبت کنم؟ آخه باعث قدرت گرفتم حرفم میشه، لطفاً ناراحت نشید)
همین کار رو با post هم میشه کرد
کافیه این رو تو 1 صفحه ی html ذخیره کنید و روی کامپیوترتون اجرا کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیددقیقاً شد همون کار بالا با متد post
عزیز دل برادر، این راه ها هیچکدوم باعث نمیشه که کارت خراب شه.
قدرت برنامه نویسی رو دست کم نگیر.
این مشکلات فقط در اولین و دومین کارت دیده میشه و از اون به بعد دیگه دستت راه می افته و بدون bug می نویسی
ببخشید که تند حرف زدم، خودم رو نمی بخشم :دی
البته احتمالا" اولین کار که نه وقتی اولین بار سایتت هک شد از اونجا به بعد سعی می کنی بدون باگ بنویسی. نمی دونم چه حرف بدی زدم که می گی قدرت برنامه نویسی رو دست کم نگیر
کجا تند حرف زدی؟! نکنه تیکه انداختی و ما نفهمیدیم؟! :دی
منظورم این بود که انقدر برنامه نویسی امن هست که نشه به این راحتی ها هک کرد
تا برنامه نویسی سوتی نده، کاری از دست هکر بر نمیاد
tabriz-info
22-07-2008, 14:46
اصلا من چی گفتم شما چی گفتی
من داشتم از بعد هکری قضیه رو نگاه میکردم شما از یه جای دیگه
من منظروم لوگهایی هست که به جا خواهد ماند در پست بعدی تفاوت اون دو تا هم نوشتم
neopersia
22-07-2008, 16:38
چرا از دیشب تا حالا این تاپیک اینقدر منحرف شده؟
تو بیشتر مثالها دارید از SQL Injection صحبت میکنید.
بابا اصلاً بحث سر POST و GET نیست. بحث چیز دیگه ایه.
من که این تاپیکو دیدم هنگ کردم نمیدونم چی بگم!
neopersia
22-07-2008, 17:58
بزارید با یه مقدمه کوچولو در مورد کوکی ها شروع کنم. البته چیزایی رو که میخوام بگم همه میدونن ولی برای روشن شدن بحث لازمه.
میدونید که مرورگر کوکیهایی رو که برای یه سایت ست کرده دست هر کسی نمیده. مثلاً کوکی هایی که برای سایت yahoo.com تو یه مرورگر ایجاد شده فقط برای سایت yahoo.com قابل دسترسیه و گوگل نمیتونه اونا رو بخونه. (البته در مورد امنیت کوکی ها نمیخوام بحث کنیم)
برای اینکه یه هکر بتونه کوکی های سایت مورد نظرش رو از یه کاربر بگیره باید اسکرپتشو از توی همون دامنه اجرا کنه.
برای روشن شدن قضیه کد زیر رو تو یه فایل html ذخیره کنید و تو چند تا دامنه (تو لوکال هاست) اجرا کنید تا کوکی های اون دامنه رو برایتون نمایش بده:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
همونطوری که خواهید دید نتیجه نمایش برای دامنه های مختلف یکی نیست (اگر کوکی مربوط به آن دامنه در مرورگر موجود باشه).
حالا بریم سر اصل قضیه: XSS
فرض کنید ما تو سایتمون یه فرم نظر سنجی داریم که نظر کاربران رو میگیره و همونطوری که هست نشون میده. متن فرم هم مهم نیست که GET باشه یا POST. فرقی هم نمیکنه که مطالب فرم کجا ذخیره بشه. تو دیتابیس یا تو فایل تفاوتی نداره.
خوب دیگه، یه هکر چیز زیادی لازم نداره. همینقدر که مطالبش رو بدون تصفیه کردن نمایش بدیم براش کافیه.
هکر کافیه بیاد این کد رو به جای نظر خودش ارسال کنه:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا به محض اینکه هر بازدید کننده ای از صفحه ای که بازدید کنه که اون کد رو نمایش میده به سایت هکر ریدایرکت میشه که کوکی های مربوط به اون دامنه رو از مرورگر بازدید کننده میگیره و تقدیم هکر میکنه. مثلاً وقتی من تو لوکال آزمایش کردم به این آدرس ریدایرکت شد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
همونطور که میبینید شناسه سشن مربوط به دامنه که توی کوکی ها ذخیره شده بود به هکر ارسال شد!
حالا تنها کاری که هکر لازمه انجام بده اینه که یه شناسه مثل همونی که دریافت کرده برای مرورگرش ست کنه و بدون اینکه نیازی به لوگین کردن داشته باشه به حساب کاربری من وارد شه! از اونجا هم میتونه اطلاعات منو برداره یا اینکه کلمه عبورمو عوض کنه...
مثالی که زدم خیلی تابلو بود :31: ولی هکر میتونه جوری اطلاعات رو بدزده که کاربر متوجه نشه. مثلاً میتونه با Ajax اطلاعاتش رو بفرسته بدون اینکه صفحه اصلی ریدایرکت بشه!
---------------------------------------
تا اینجا امیدوارم متوجه شده باشید که منظور ما کدوم نوع از حمله هست و فرقش با SQL Injection چی هست.
الان یه کم سرم شلوغه ایشالله تو اولین فرصت در مورد راه حلش هم بحث میکنیم.
شما هم نشینید هی سر صورت مسئله بحث کنید. بری سراغ راه حلها دیگه :31:
pezhman32
22-07-2008, 18:35
من یه تابع کوچیک نوشتم و خودم یه دو سالی هست استفاده می کنم و مشکلی نداشتم تاحالا. باید مقادیری که کاربر در پایگاه داده ها ثبت کرده رو به عنوان ورودی به این تابع بدی و خروجی پاک رو تحویل بگیری:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دلیل اینکه این کد رو اینجا نزاشتم باگ وی بی یود که خوب انکد نم کنه (نمی دونم این همه باگ اونم از این همه برنامه نویس حرفه ای)
درضمن همه چیز هم کوکی نیست
یه بار یه سایت هک شده رو دیدم که توش یه فریم پست شده بود و اون فریم به یه سایتی لینک شده بود که نمی دونم دقیقا" از activeX استفاده می کرد یا چیز دیگه ای ولی وقتی با ie بازش می کردی ویندوزت فاتحش خونده میشد, من خودم با هیچ antispy و آنتی ویروسی نتونستم درستش کنم و مجبور شدم وین عوض کنم.
من شرمنده ام، می دونستم که ممکنه نظرم هم رو کاملاً خوب متوجه نشیم و کدورتی پیش بیاد. به همین دلیل اولش عذرخواهی کردم.
pezhman32 جان، این تابعت خوبه ولی وقتی تابع آماده اش هست، دیگه این کار ها رو نمی خواد
به هر حال شرمنده
pezhman32
22-07-2008, 19:07
من شرمنده ام، می دونستم که ممکنه نظرم هم رو کاملاً خوب متوجه نشیم و کدورتی پیش بیاد. به همین دلیل اولش عذرخواهی کردم.
pezhman32 جان، این تابعت خوبه ولی وقتی تابع آماده اش هست، دیگه این کار ها رو نمی خواد
به هر حال شرمنده
ممنون عزیز نمی دونم قضیه چیه و کدورت کجاست (آیکیوم پایینه دیگه)
راستی در مورد اون تابع باید بگم که من دیده بودم خیلی از سیستم های بزرگ مثل phpbb یه همچین تابعی رو استفاده می کنن, دلیلش هم اینه که توابعی مثل htmlspecialchars همه ی علائمی رو که تابع کوچیکی که معرفی کردم رو کد نمی کنه, این بحث رو خیلی وقت پیش پیگیری کرده بودم که مثلا "]" چجوری می تونه باعث مثلا" XSS یا sql injection بشه و یادم هم نیست به چه نتیجه ای رسیدم:13::41:
به هر حال نمی دونم مشکل کجاست و اگه من تقصیری دارم در انحراف موضوع شرمنده ام
خواهش می کنم. شرمنده ی صاحب تاپیک شدیم که انقدر منحرف شد.
ولی "]" جالب بود. اگر پیداش کردی، حتماً لطف کن و بگو. می تونه خیلی آموزنده باشه
pezhman32
22-07-2008, 19:24
خواهش می کنم. شرمنده ی صاحب تاپیک شدیم که انقدر منحرف شد.
ولی "]" جالب بود. اگر پیداش کردی، حتماً لطف کن و بگو. می تونه خیلی آموزنده باشه
الآن دوباره یه سرچی کردم ولی متاسفانه بیشتر مقالات موجود تو وب و کامپیوتر خودم pdf هست و منم فعلا آکروبات ریدر ندارم (دارم حس نسبش نیست!!!)
اگه بعدا پیداش کردم حتما" همینجا می گم
David.Jn
22-07-2008, 22:54
خواهش می کنم. شرمنده ی صاحب تاپیک شدیم که انقدر منحرف شد.
ولی "]" جالب بود. اگر پیداش کردی، حتماً لطف کن و بگو. می تونه خیلی آموزنده باشه
اول از همه این که چه عجب آقآی dogtag ،کجایی؟
کم پیدایی...
من امروز سر نزده بودم ولی انگاری تاپیک داشته درجا میزده ولی انگار داره میفته تو قلطک
ممنون از دوست عزیزمون پژمان به خاطر تابعی که گذاشته بودن
خوب علائمی که باید برای جلوگیری از Xss باید کد شوند را براتون میزارم البته این علائم تو تابع آقا پژمان هم وجود داشت ولی من خواستم اینو برای کسایی بزارم که مثل خودم زیاد با Xss آشنایی ندارن
خوب یکی از راه حل هایی که برای جلوگیری از Xss وجو داره تبدیل (encode) علائمه
الته تابعشو آقا پژمان نوشتن
این علائم را براتون آپ کردم
اینم لینکش
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این علائم باید در تمامی حالتهای ورودی و Quey String ها تبدیل بشن
pezhman32
22-07-2008, 22:59
اول از همه این که چه عجب آقآی dogtag ،کجایی؟
کم پیدایی...
من امروز سر نزده بودم ولی انگاری تاپیک داشته درجا میزده ولی انگار داره میفته تو قلطک
ممنون از دوست عزیزمون پژمان به خاطر تابعی که گذاشته بودن
خوب علائمی که باید برای جلوگیری از Xss باید کد شوند را براتون میزارم البته این علائم تو تابع آقا پژمان هم وجود داشت ولی من خواستم اینو برای کسایی بزارم که مثل خودم زیاد با Xss آشنایی ندارن
خوب یکی از راه حل هایی که برای جلوگیری از Xss وجو داره تبدیل (encode) علائمه
الته تابعشو آقا پژمان نوشتن
این علائم عبارتند از:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداین علائم باید در تمامی حالتهای ورودی و Quey String ها تبدیل بشن
ای بابا چه هندونه ای میزاری زیر بغل ما !!!! :دی
اگه میشه اینارو توی یه فایل txt یه جایی آپ کنید تا بهتر بتونیم استفاده کنیم, vBulletin در کد کردن باگ داره و درست نشون نمیده
ممنون
neopersia
23-07-2008, 01:22
به نظر من برای جلوگیری از نفوذ از طریق XSS اگر علامتهای < و > انکود بشه کافیه. چون این حمله از طریق اسکرپت انجام میشه و اسکرپت هم بدون تگ HTMl معنی نداره. من از این توابع برای انکرپت کردن ورودیهای برنامه استفاده میکنم:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
David.Jn
23-07-2008, 08:20
به نظر من برای جلوگیری از نفوذ از طریق XSS اگر علامتهای < و > انکود بشه کافیه. چون این حمله از طریق اسکرپت انجام میشه و اسکرپت هم بدون تگ HTMl معنی نداره. من از این توابع برای انکرپت کردن ورودیهای برنامه استفاده میکنم:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
یاسر جان چه جوری از این توابع استفاده کنیم
میشه بیشتر توضیح بدی
یاسر جان چه جوری از این توابع استفاده کنیم
میشه بیشتر توضیح بدی
سلام.
به جونه خودم این یکی که باید خیلی تابلو باشه!
منظورم طرز استفاده ازش هست:10:
David.Jn
24-07-2008, 19:35
سلام.
به جونه خودم این یکی که باید خیلی تابلو باشه!
منظورم طرز استفاده ازش هست
خیلی ممنون....
ولی منظورم من این بود که دو تابع htmlentities و htmlspecialchars تفریبآ کارشون یکیه چرا از هر دوش استفاده کرده و strip_tags هم که کارش حذف کردن یه رشته php, html هستش من فکر میکرم که شاید باید از هر سه تای اینا استفاده کرد یعنی خروجی یکی از این توابع میشه ورودی بعدیش برای همین خاطر گفتم یکم بیشتر توضیح بدن یا تو قالب یه مثال بگن.
حالا هم اگه سوالم تابلو بوده معذرت:5:
pezhman32
24-07-2008, 21:19
خواهش می کنم. شرمنده ی صاحب تاپیک شدیم که انقدر منحرف شد.
ولی "]" جالب بود. اگر پیداش کردی، حتماً لطف کن و بگو. می تونه خیلی آموزنده باشه
فکر کنم یادم اومد
این موضوع ربطی به xss نداشت ولی:
متوجه باگی که گفتم تو vb هست شدید؟ فهمیدید منظورم چیه؟ خوب احتمالا" vb از همین htmlspecialchars استفاده می کنه و موقع کد کرد [ بجای & # 9 1 ; خود [ رو قرار می ده مثلا" الان من & # 9 1 ; رو توی کد زیر نوشتم ولی خروجی رو نگاه کنید (فاصله های بین & # 9 1 ; رو برداشتم)
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداین موضوع در فرومهایی با موضوع برنامه نویسی می تونه باعث بوجود آمدن اشکالات زیادی بشه و تابع htmlspecialchars فقط و فقط می تونه جلوی xss رو بگیره
neopersia
24-07-2008, 21:33
نیازی نیست از همه اون توابع استفاده بشه. یه دونش کافیه.
در هر مورد باید ببینیم کدوم یکی بیشتر به کار مون میاد. من خودم معمولاً از htmlentities استفاده میکنم ولی خوب پیش اومده که اون دوتای دیگه هم به کار ببرم.
تفاوت دوتا اولی در کاراکترهایی هست که تبدیل میکنند.
تابع htmlspecialchars فقط &, <, > رو تبدیل میکنه تبدیل کوتیشنها هم بستگی به پارامتر دوم تابع داره.
اما تابع htmlentities همه کاراکترهایی رو که معادل HTML دارند تبدیل میکنه مثلاً اگر کسی مستقیماً علامت کپی رایت رو توی متن وارد کنه اونو تبدیل میکنه به ;copy& . برای همین فکر میکنم برای نمایش متن تو صفحه مناسب تر باشه.
سومی هم که مشخصه. همه تگهای HTML و PHP رو حذف میکنه مگر اون تگهایی رو که تو پارامتر دوم مجاز کنیم.
راستی تو مطالب قبل به ActiveX اشاره شد. من زیاد نمیدونم چی هست و چطوری به کار میره چون تکنولوژی مایکروسافته ولی تا جایی که میدونم اونم با تگ <object> وارد صفحه میشه که روشهای معرفی شده جلوشو میگیره
neopersia
24-07-2008, 21:35
فکر کنم یادم اومد
این موضوع ربطی به xss نداشت ولی:
متوجه باگی که گفتم تو vb هست شدید؟ فهمیدید منظورم چیه؟ خوب احتمالا" vb از همین htmlspecialchars استفاده می کنه و موقع کد کرد [ بجای & # 9 1 ; خود [ رو قرار می ده مثلا" الان من & # 9 1 ; رو توی کد زیر نوشتم ولی خروجی رو نگاه کنید (فاصله های بین & # 9 1 ; رو برداشتم)
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداین موضوع در فرومهایی با موضوع برنامه نویسی می تونه باعث بوجود آمدن اشکالات زیادی بشه و تابع htmlspecialchars فقط و فقط می تونه جلوی xss رو بگیره
میخوام امتحان کنم ببینم درست نشون میده یا نه!
[
حالا با تگ code امتحان میکنم:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
آره انگار مشکل داره! تو این نسخه وی بولتین همچین تعداد باگها کم نبوده!
sadegh62
10-03-2013, 12:18
سلا م دوستان بحث بسیار خوبیه ، شما شاید از من بهتر بدونید که ایران تو زمینه امنیت در جهان بسیار ضعیفه و این بحث ها باعث تقویت امنیت و پیشرفت علم امنیت در ایران و برنامه نویسان ایرانی می شه\لینک زیر
رو راجع به xss ببینید بد نیست
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
SAZEBIVAFA
10-09-2014, 18:18
سلام
حالا یک سوال. مثلا من که اون اسکریپت را برای -- در url قرار دادم. اون اسکریپت فقط برای من اجرا میشه و دیگه در بین کدهای سایت ذخیره نمیشه که برای دیگران هم اجرا بشه؟ لطفا جواب بدید/
hamedarian2009
10-09-2014, 23:30
سلام
حالا یک سوال. مثلا من که اون اسکریپت را برای -- در url قرار دادم. اون اسکریپت فقط برای من اجرا میشه و دیگه در بین کدهای سایت ذخیره نمیشه که برای دیگران هم اجرا بشه؟ لطفا جواب بدید/
ببین یه مثال برات بزنم. مثلا یه سایت داریم که نظرات کاربران رو درج میکنه مثل همین سایت. خب تو الان یه سوال داری و من یه لینک بهت میدم که حاوی کدهای مخرب هست اگه روش کلیک کنی و سایت هم جلوی این حملات رو نگرفته باشه اونوقت من کوکی هاتو میدزدم . تمام
SAZEBIVAFA
11-09-2014, 09:41
من نرم افزار acunetix دارم حالا این برنامه صددرصد باگها رو پیدا میکنه؟ یا ممکنه اشتباه هم بکنه. این نرم افزار یه سری باگ پیدا کرد با نرم افزار دیگه نمیشه باگهای دیگه از این سایت پیدا کرد؟
در کل منظورم اینه که میشه به طور صد در صد به این برنامه اطمینان کرد و گفت دیگر بیشتر از این باگی نیست؟
SAZEBIVAFA
11-09-2014, 10:11
یه سوال دیگه برام پیش اومد
چطور میشه از این طریق کوکی های هدف رو گرفت؟آیا تمامی کوکی های مرورگر را میگیرد؟
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.