نکات امنیتی در PHP
6 پست
• صفحه 1 از 1
نکات امنیتی در PHP
توجه به حملات رایج در برنامههای کاربردی تحت وب توسط توسعه دهندگان بسیار اهمیت دارد. در ادامه مقاله در لیداوب، چند مورد از آنها را به همراه راه حلهایی که در PHP قابل پیاده سازی است، معرفی میکنیم.
پیکربندی نامناسب TLS/SSL
TLS/SSL، استانداردهای امنیتی هستند که ضمانت میکنند دو موجودیت میتوانند با استفاده از ویژگیهای کلیدهای عمومی و خصوصی ارتباطی امن با یکدیگر داشته باشند.
این استانداردها ارتباطات میان دو فرد را رمزگذاری میکنند. همچنین، یک یا هر دو طرفین میتوانند برای جلوگیری از حمله مردی در میانه (MITM)، گواهینامههای SSL طرف مقابل را راستی آزمایی کنند. در حمله فردی در طول ارتباطات، هویت یکی از طرفین را جعل میکند. البته، رمزگذاریها نیازمند گواهینامههای SSL هستند. در غیر این صورت، مهاجم میتواند تمامی پیامهای میان کلاینت و سرور را رمزگشایی کند.
ارتباطات SSL/TLS هویت دو طرف را راستی آزمایی میکنند. SSL این ضمانت را میدهد که ارتباطات HTTPS، با روشی بسیار امن انجام میشود. این استاندارد همچنین متون XML و رپرهای curl را هم به طور کامل کنترل میکند.
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
امنیت در مقابل حملات تزریق XML
تزریق XML، شامل حملات مختلفی مانند XXE (تزریق موجودیت خارجی XML) و XEE (توسعه موجودیت XML) میشود.
تزریق موجودیت خارجی XML
حملات XXE، زمانی اتفاق میافتد که ورودی فایلهای XML حاوی ارجاعی به یک موجودیت خارجی باشد و این موجودیت خارجی توسط تجزیه کننده فایل XML که تنظیمات امنیتی ضعیفی دارد، پردازش شود و در نتیجه مهاجم را به هدف خود برساند. مهاجم برای انجام این حمله میتواند با خواندن فایل XML هدف و ارسال مقادیر بدخواه خود از طریق درخواستهای HTTP، فراخوانی رپر filter در PHP یا دنبالههای گنجاندن فایل در پارامترهای ورودی لینکها به هدف خود برسد. این آسیب پذیری به صورت بالقوه میتواند باعث افشای اطلاعاتی مانند محتوای فایل، مولفههای کنترل دسترسی یا حملات انکار سرویس شود.
گسترش موجودیت XML
حملات XEE، شامل سوءاستفاده از قدرت تجزیه کننده فایل XML برای گسترش موجودیتهای فعلی است، به گونهای که باعث سرریز حافظه (و برای نمونه حمله انکار سرویس توزیعی) شود. به طور عمده، تجریه کنندههای SimpleXML ،DOM و XMLReader به دلیل وابستگی به libxml2 مورد حمله قرار میگیرند.
امنیت PHP در برابر حملات اسکریپت نویسی Cross-Site
حملات اسکریپت نویسی Cross-Site یا XSS، یکی از مهمترین حملاتی است که بر روی برنامههای کاربردی PHP و تمام کتابخانهها انحام میشود. این مساله عمدتا به دلیل نبود دو مورد زیر اتفاق میافتد.
حملات XSS به دلیل نبود اعتبارسنجی کافی ورودی
در ابتدا، تابع filter_var()، لینکها را اعتبارسنجی میکرد. اما در نظر نگرفتن هر نکته ظریفی در مساله اعتبارسنجی میتواند منجر به شکست این مکانیزم دفاعی شود. نحوه استفاده از این تابع به صورت زیر است:
filter_var($_GET['http_url'], FILTER_VALIDATE_URL);
فرار از خروجی یا پاکسازی حملات
تابع rawurlencode() در PHP میتواند برای تزریق امن داده به لینکها (مانند ویژگی href) مورد استفاده قرار بگیرد. علاوه بر این، این تابع برای کشف دستکاریهایی که ممکن است منجر به اقدامات مخرب شود، کل لینک را اعتبارسنجی میکند. تابع htmlspecialchars() تنها تابع فرار از کاراکترهای بدخواه در ورودیهای کاربر است.
حملات تزریق دنباله در لینک (حملات گنجاندن فایل محلی / از راه دور)
در صورتی که ویژگی allow_url_include در وب سرور فعال باشد، برخی توابع مانند include_once ، includeو require_once لینکهای از راه دور را به عنوان ورودی میپذیرند. با توجه به اینکه مهاجم میتواند از همین امکان سوءاستفاده کند، لذا توسعه دهندگان وب باید در استفاده از این ویژگی با دقت عمل کنند.
روش های گیاهی-طبیعی برای درمان خلط گلو
جنین پسر در بارداری
تشخیص بین چپ مغزها و راست مغزها
پیکربندی نامناسب TLS/SSL
TLS/SSL، استانداردهای امنیتی هستند که ضمانت میکنند دو موجودیت میتوانند با استفاده از ویژگیهای کلیدهای عمومی و خصوصی ارتباطی امن با یکدیگر داشته باشند.
این استانداردها ارتباطات میان دو فرد را رمزگذاری میکنند. همچنین، یک یا هر دو طرفین میتوانند برای جلوگیری از حمله مردی در میانه (MITM)، گواهینامههای SSL طرف مقابل را راستی آزمایی کنند. در حمله فردی در طول ارتباطات، هویت یکی از طرفین را جعل میکند. البته، رمزگذاریها نیازمند گواهینامههای SSL هستند. در غیر این صورت، مهاجم میتواند تمامی پیامهای میان کلاینت و سرور را رمزگشایی کند.
ارتباطات SSL/TLS هویت دو طرف را راستی آزمایی میکنند. SSL این ضمانت را میدهد که ارتباطات HTTPS، با روشی بسیار امن انجام میشود. این استاندارد همچنین متون XML و رپرهای curl را هم به طور کامل کنترل میکند.
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
امنیت در مقابل حملات تزریق XML
تزریق XML، شامل حملات مختلفی مانند XXE (تزریق موجودیت خارجی XML) و XEE (توسعه موجودیت XML) میشود.
تزریق موجودیت خارجی XML
حملات XXE، زمانی اتفاق میافتد که ورودی فایلهای XML حاوی ارجاعی به یک موجودیت خارجی باشد و این موجودیت خارجی توسط تجزیه کننده فایل XML که تنظیمات امنیتی ضعیفی دارد، پردازش شود و در نتیجه مهاجم را به هدف خود برساند. مهاجم برای انجام این حمله میتواند با خواندن فایل XML هدف و ارسال مقادیر بدخواه خود از طریق درخواستهای HTTP، فراخوانی رپر filter در PHP یا دنبالههای گنجاندن فایل در پارامترهای ورودی لینکها به هدف خود برسد. این آسیب پذیری به صورت بالقوه میتواند باعث افشای اطلاعاتی مانند محتوای فایل، مولفههای کنترل دسترسی یا حملات انکار سرویس شود.
گسترش موجودیت XML
حملات XEE، شامل سوءاستفاده از قدرت تجزیه کننده فایل XML برای گسترش موجودیتهای فعلی است، به گونهای که باعث سرریز حافظه (و برای نمونه حمله انکار سرویس توزیعی) شود. به طور عمده، تجریه کنندههای SimpleXML ،DOM و XMLReader به دلیل وابستگی به libxml2 مورد حمله قرار میگیرند.
امنیت PHP در برابر حملات اسکریپت نویسی Cross-Site
حملات اسکریپت نویسی Cross-Site یا XSS، یکی از مهمترین حملاتی است که بر روی برنامههای کاربردی PHP و تمام کتابخانهها انحام میشود. این مساله عمدتا به دلیل نبود دو مورد زیر اتفاق میافتد.
حملات XSS به دلیل نبود اعتبارسنجی کافی ورودی
در ابتدا، تابع filter_var()، لینکها را اعتبارسنجی میکرد. اما در نظر نگرفتن هر نکته ظریفی در مساله اعتبارسنجی میتواند منجر به شکست این مکانیزم دفاعی شود. نحوه استفاده از این تابع به صورت زیر است:
filter_var($_GET['http_url'], FILTER_VALIDATE_URL);
فرار از خروجی یا پاکسازی حملات
تابع rawurlencode() در PHP میتواند برای تزریق امن داده به لینکها (مانند ویژگی href) مورد استفاده قرار بگیرد. علاوه بر این، این تابع برای کشف دستکاریهایی که ممکن است منجر به اقدامات مخرب شود، کل لینک را اعتبارسنجی میکند. تابع htmlspecialchars() تنها تابع فرار از کاراکترهای بدخواه در ورودیهای کاربر است.
حملات تزریق دنباله در لینک (حملات گنجاندن فایل محلی / از راه دور)
در صورتی که ویژگی allow_url_include در وب سرور فعال باشد، برخی توابع مانند include_once ، includeو require_once لینکهای از راه دور را به عنوان ورودی میپذیرند. با توجه به اینکه مهاجم میتواند از همین امکان سوءاستفاده کند، لذا توسعه دهندگان وب باید در استفاده از این ویژگی با دقت عمل کنند.
روش های گیاهی-طبیعی برای درمان خلط گلو
جنین پسر در بارداری
تشخیص بین چپ مغزها و راست مغزها
Re: نکات امنیتی در PHP
[ul=https://okt.szilver.hu/eportfolios/24015/Kezdlap/]منظور از ورودی و خروجی زبان چیست؟[/ul]
[ul=https://lms.macnet.ca/eportfolios/536/beauty]چند نکته قبل از انجام جراحی های زیبایی[/ul]
[ul=https://lms.macnet.ca/eportfolios/536/beauty]چند نکته قبل از انجام جراحی های زیبایی[/ul]
6 پست
• صفحه 1 از 1
چه کسی آنلاین است
کاربران حاضر در این انجمن : کاربر عضو شده ای موجود نیست و 3 مهمان