در حال بارگذاری...
بررسی و شناسایی ارسال اطلاعات حساس مثل رمزهای عبور، توکنها و دادههای شخصی از طریق کانالهای رمزنگارینشده.
اهداف این درس
کانالهای رمزنگارینشده ارتباطاتی هستند که دادهها بهصورت plaintext (متن ساده) منتقل میشوند و هر کسی که به شبکه دسترسی داشته باشد میتواند آنها را ببیند. پروتکلهایی مثل HTTP، FTP، Telnet و SMTP رمزنگاری نشدهاند.
دادههایی که رمزنگاری نشدهاند و بهصورت متن ساده قابل خواندن هستند. ارسال اطلاعات حساس بهصورت plaintext خطرناک است.
| پروتکل ناامن | جایگزین امن | کاربرد |
|---|---|---|
| HTTP | HTTPS | وب |
| FTP | SFTP/FTPS | انتقال فایل |
| Telnet | SSH | دسترسی از راه دور |
| SMTP | SMTPS | ارسال ایمیل |
| POP3 | POP3S | دریافت ایمیل |
| IMAP | IMAPS | مدیریت ایمیل |
بررسی کنید آیا برنامه از HTTP یا سایر پروتکلهای ناامن برای ارسال اطلاعات حساس استفاده میکند.
1# بررسی HTTP2https://target.com # آیا به HTTP ریدایرکت میشود؟34# بررسی mixed content5curl -s https://target.com | grep -i 'http://'67# بررسی فرمها8curl -s https://target.com/login | grep -i 'action="http://'910# بررسی کوکیها11curl -v https://target.com 2>&1 | grep -i 'set-cookie'بررسی کنید آیا APIها از HTTPS استفاده میکنند و آیا توکنهای امنیتی بهصورت امن ارسال میشوند.
ارسال اطلاعات حساس از کانالهای ناامن میتواند منجر به سرقت رمزهای عبور، sessionها، توکنها و دادههای شخصی کاربران شود.
هشدار
حتی اگر صفحه ورود HTTPS باشد، اگر session cookie Secure نباشد، مهاجم میتواند آن را از طریق HTTP سرقت کند.
1server {2 listen 80;3 server_name example.com;4 return 301 https://$server_name$request_uri;5}67server {8 listen 443 ssl;9 server_name example.com;10 11 ssl_certificate /etc/ssl/certs/example.com.crt;12 ssl_certificate_key /etc/ssl/private/example.com.key;13 14 add_header Strict-Transport-Security "max-age=63072000" always;15}توصیه عملی
از ابزارهایی مثل SSL Labs، Mozilla Observatory و SecurityHeaders.com برای بررسی پیکربندی امنیتی سایت خود استفاده کنید.
هرگز رمز عبور، توکن یا داده حساس را از طریق HTTP ارسال نکنید.
HTTPS باید برای تمام صفحات فعال باشد، نه فقط صفحات ورود.
از HSTS برای اجبار HTTPS استفاده کنید.
کوکیها باید با flagهای Secure و HttpOnly تنظیم شوند.
کدام پروتکل برای ارسال اطلاعات حساس مناسب است؟
چرا ارسال رمز عبور از طریق HTTP خطرناک است؟
ترافیک HTTP رمزنگاری نشده و مهاجمان میتوانند آن را شنود کنند. اگر رمز عبور از طریق HTTP ارسال شود، مهاجم میتواند آن را بهراحتی ببیند و سرقت کند.
آیا فقط صفحه ورود باید HTTPS باشد؟
خیر، تمام صفحات باید HTTPS باشند. حتی اگر رمز عبور فقط در صفحه ورود ارسال شود، session cookie در تمام صفحات ارسال میشود و اگر HTTP باشد، قابل سرقت است.