SOP (Same Origin Policy)
⁉️حالا Origin چیه؟
در واقع Origin ترکیبی از سه بخش اصلی هستش:
protocol
port
host
پروتکل (مثل http یا https)
دامنه (مثل example.com)
پورت (مثل 80 یا 443)
مثالهای ساده:
Same Origin:
https://example.com:443/index.php
https://example.com/dashboard
این دو URL Same Origin هستند زیرا پروتکل، دامنه و پورت یکی است.
Cross Origin به خاطر دامنه متفاوت:
https://target.com/index.php
https://example.com/home
این دو URL Cross Origin هستند چون دامنهها متفاوت است.
Cross Origin به خاطر پروتکل متفاوت:
http://example.com/home
https://example.com/home
این دو URL Cross Origin هستند چون پروتکلها (http و https) متفاوت است.
Cross Origin به خاطر پورت متفاوت:
http://example.com:8080
http://example.com
این دو Cross Origin هستند چون پورتها متفاوت است.
Cross Origin به خاطر دامنه متفاوت:
https://www.example.com/home/index.php
https://example.com/dashboard
این دو URL Cross Origin هستند چون دامنهها متفاوت است.
💡نکته مهم: SOP فقط برای درخواستهای HTTP و HTTPS کار میکند. اگر سایت از پروتکلهای دیگر مانند WebSocket استفاده کند، SOP به آن اعمال نمیشود.
#SOP
#x100
@ITSecurityComputer
یک قاعده امنیتی در مرورگرها هستش که به این ترتیب عمل میکنه: اگر Origin یا منبع A بخواد به Origin یا منبع B درخواست ارسال کنه، مرورگر تنها میتونه دادههای Origin یا منبع B را دریافت کنه، اما اجازه نمیده که این دادهها رندر گرفته یا نمایش داده بشن. این قاعده برای جلوگیری از مشکلات امنیتی مثل دسترسی غیرمجاز به دادههای دیگر Originها طراحی شده است. که به اصلاح بهش میگن Cross-Origin
⁉️حالا Origin چیه؟
در واقع Origin ترکیبی از سه بخش اصلی هستش:
protocol
port
host
پروتکل (مثل http یا https)
دامنه (مثل example.com)
پورت (مثل 80 یا 443)
مثالهای ساده:
Same Origin:
https://example.com:443/index.php
https://example.com/dashboard
این دو URL Same Origin هستند زیرا پروتکل، دامنه و پورت یکی است.
Cross Origin به خاطر دامنه متفاوت:
https://target.com/index.php
https://example.com/home
این دو URL Cross Origin هستند چون دامنهها متفاوت است.
Cross Origin به خاطر پروتکل متفاوت:
http://example.com/home
https://example.com/home
این دو URL Cross Origin هستند چون پروتکلها (http و https) متفاوت است.
Cross Origin به خاطر پورت متفاوت:
http://example.com:8080
http://example.com
این دو Cross Origin هستند چون پورتها متفاوت است.
Cross Origin به خاطر دامنه متفاوت:
https://www.example.com/home/index.php
https://example.com/dashboard
این دو URL Cross Origin هستند چون دامنهها متفاوت است.
⁉️چطور SOP عمل میکند؟
فرض کن هکر دو تب باز کرده است:
یکی به سایت hacker.com مربوط میشود.
دیگری به سایت bank.com مربوط میشود.
اگر SOP وجود نداشت، هکر میتوانست از hacker.com درخواستهایی به bank.com ارسال کند و اطلاعات حساس کاربر را بخواند. اما SOP مانع این کار میشود. یعنی درخواست از hacker.com به bank.com ارسال میشود، اما مرورگر دادههای برگشتی از bank.com را به hacker.com نمیدهد.
⚠️
محدودیتهای SOP:
عکس: SOP روی تصاویر و عکس ها اعمال نمیشه. میشه از هر سایتی تصویری را بارگیری کرد و در سایت خود نمایش داد.
فایلهای جاوااسکریپت: SOP روی فایلهای جاوااسکریپت نیز اعمال نمیشود. بنابراین، فایلهای جاوااسکریپت موجود در یک سایت میتوانند توسط دیگر سایتها خوانده شوند که ممکن است به آسیبپذیریهای امنیتی منجر شود.
💡نکته مهم: SOP فقط برای درخواستهای HTTP و HTTPS کار میکند. اگر سایت از پروتکلهای دیگر مانند WebSocket استفاده کند، SOP به آن اعمال نمیشود.
#SOP
#x100
@ITSecurityComputer