آنچه برای بالا بردن امنیت سایت لازم است بدانید!

خلاصه کل مطلب زیر این است که اگر تابع قوانین W3C باشید هیچ کاری نه می توانید و نه باید انجام دهید.یکی از چند موردی که موجب می شود یک صفحه اینترنتی بعنوان جریمه در گوگل ایندکس نشود، آموزش هک و سخن گفتن از عبور از پچ های امنیتی سایتها و نشر مطالب مخل امنیت سایتهاست.مثل چیزی که الان من می خواهم بگویم.(البته هدفم اطلاع رسانی صحیح به مالکان و مدیران سایتهاست که بدونند وارد چه دنیایی شده اند و اینکه قانون دنیای مجازی نگاه خوبی به حس مالکیت آنها ندارد)یعنی گوگل درمطلب گذاشتن از سه چیز از شما گذشت نمی کند، برهنگی،خشونت و آموزش هک.اما این ظاهر قضیه است و برخلاف آنچه که تصور میشود و به عبارتی ادعا می شود، همه چیز برای استفاده هکرها محترم شمرده شده است تا آنجا که W3C بعنوان اتحادیه وب جهان‌گستر یا کنسرسیوم وب؛ تنها کنسرسیومی است که استانداردهای نرم‌افزاری لازم را برای وب وضع می‌کند در اقدامی عجیب، تمام قد از هکرها حمایت می کند.یکی از اقدامات عجیب W3C نه فقط باز گذاشتن دست هکر ها در شکستن امنیت سایتهاست ، بلکه حمایت همه جانبه از هکرهاست.به عنوان شاهد کلام نسخه 3 از W3C این قانون را برای مرورگرها لازم اجرا کرده که هیچ مرورگری حق محدود کردن فعالیت های هکری را ندارند. (فکر کنم اینجا هم پای حقوق بشر و آزادی بیان باز شده).قانون حمایت از هکرها وضع شده توسط W3Cقانون حمایتی از هکرها، وضع شده توسط W3CPolicy enforced on a resource SHOULD NOT interfere with the operation of user-agent features like addons, extensions, or bookmarklets. These kinds of features generally advance the user’s priority over page authors, as espoused in [HTML-DESIGN].Moreover, applying CSP to these kinds of features produces a substantial amount of noise in violation reports, significantly reducing their value to developers.Chrome, for example, excludes the chrome-extension: scheme from CSP checks, and does some work to ensure that extension-driven injections are allowed, regardless of a page’s policy.که ترجمه آن می شود:خط‌مشی اعمال‌شده بر روی سورس یک وبسایت نباید باعث مداخله در اختیارات کاربری مانند افزونه‌ها، برنامه‌های افزودنی یا بوکمارک‌ها شود. این نوع اختیارات معمولاً اولویت کاربر را نسبت به توسعه دهندگان وب در سطح بالاتری قرار می دهد، از آنجمله می توان در طراحی صفحات HTML یا [HTML-DESIGN] گفت.علاوه بر این، اعمال CSP برای این نوع اختیارات، مقدار قابل توجهی نویز در گزارش‌های تخلف ایجاد می‌کند و ارزش آن‌ها را بطور قابل توجهی برای توسعه‌دهندگان کاهش می‌دهد.برای مثال [این قانون]، افزونه های کروم یا chrome-extension: را از بررسی‌های CSP مستثنی می‌کند تا کاربر با اطمینان از اینکه تزریق‌های مبتنی بر برنامه افزودنی بدون توجه به خط‌مشی صفحه بدرستی کار می‌کند.خوب دقت کنید. اینجا که گفته شده:این نوع اختیارات معمولاً اولویت کاربر را نسبت به توسعه دهندگان وب در سطح بالاتری قرار می دهدفکر میکنید منظور از توسعه دهنده کیست؟بله مالک سایت است، چرا که توسعه دهنده از مالک سایت دستور میگرید کهکاری را روی سایت انجام دهد.این مثل همون جمله مضحک اروپایی هاست که می گویند: همیشه حق با مشتری استآیا همیشه حق با مشتری است؟یعنی به این بهانه مضحک که در حمایت از مشتری (=~کاربرانی) آمده گفته شده: نباید کاربرانی که قصد دارند گزارش های امنیتی سایت ها را جمع آوری و ارسال کنند با محدودیت مواجهه شوند، پس باید؛ در خونه را باز بگذارید تا راحت بشود همه چیز را دید و برد.و بی دلیل نیست که هیچ امکانی برای غیرقابل دیباگ کردن یک سایت در مرورگرها از جمله کروم قرار داده نشده است.اگر قرار به دیباگ یک صفحه از سایت است (دیباگ کردن کد به منظور رفع اشکالات کد است)، قطعا ذینفع مالک سایت است و مالک هم که همیشه در حال دیباگ نیست. پس یک وقتهایی باید بتواند دیباگر را غیرفعال کند.اما کل فرایند حمایت از هکرها طوری چیده شده که مالک سایت (یا بقول W3C توسعه دهنده سایت) نتواند مانع دیباگ کردن یک صفحه شود و اصرار به انجام صحیح این قانون تا جایی است که اگر توسعه گری(=مالک سایت) روشی برای غیرفعال کردن دیباگر یک صفحه توسط کد جاواسکریپت پیدا کند سریعا توسط کروم رفع و در اولین نسخه بروزرسانی اعمال می شود. چرا که این خواسته W3C است.از طرفی مالک سایت را CSP دعوت می کنندجالبه که برایتان از CSP کمی بگویم.پروتکل امنیتی CSP مجموعه ای از هدرهای سمت سرور (وحتی کلاینتی با meta) هستند که خط مشی امنیتی یک سایت را به مرورگر اطلاع می دهند که استفاده از آن در ظاهر سطح بالایی از امنیت به سایتها می دهد، تا جاییکه شما می توانید مطمئن شوید که کاربران نمی توانند کدی به کدهای جاواسکریپت شما بصورت in-line یا اکسترنال (تزریق فایل خارجی) اضافه کنند که در پی آن با حملات Xss یا Cross Site Scripting حملات مخربی انجام میشود و...ظاهر قضیه اینه که بعد از اعمال تمام ریزه کاریهای CSP که انصافا با مشقت هم همراه است (از جمله نیاز به بروز رسانی مرتب شناسه ها با کوچکترین تغییر در کدها) می توانید مطمئن شوید که کسی نمی تواند مثلا سایت شما را داخل IFRAME باز کند یا مورد حمله Xss قرار بده و ....اما قانون بالا کل این امنیت را مختل می کند، چرا که با وجود اجازه داشتن برای بکاربردن هرنوع از افزونه ها با هدف ریجت یا بای پس کردن هدرهای CSP عملا CSP بی ارزش می شود. و تمام هدرهای CSP را می توان با افزونه مناسب آن غیرفعال کرد.یعنی مثلا شما می توانید در جستجوی افزونه های کروم، دنبال افزونه ای بگردید که اجازه دهد شما یک سایت را بصورت iframe باز کنید، حتی اگر اون سایت با csp بصورت ارسال هدر X-Frame-Options: DENY مرورگر را از این کار نهی کرده باشد.خیلی جالبه که این یعنی امنیت در وب یک شوخی است بقول خودشون it is a joke!مثل اینه که شما را تشویق و ملزم به نصب انواع دزدگیر کنند و از طرفی با قانون به حمایت متجاوزان آمده و اجازه فروش وسیع ابزار و اجازه استفاده از ابزار بریدن نرده و شکستن قفل خانه ها را به آنها بدهند تا جاییکه استفاده از دزدگیر را زیر سوال ببرداما این یادتون نره ها، آموزشش ممنوع است فقط استفاده از آن مجاز است ......خنده داره نه؟مثل اینکه آموزش قاتل بودن را ممنوع کنیمآموزش سرقت را ممنوع کنیم (مثل ممنوع کردن آموزش هک و پچ های امنیتی)اما همه قانونا مجوز سرقت و قتل را بدهیم.