article

امنیت در طراحی سایت؛ چرا SSL و HTTPS ضروری هستند؟

خبرنامه

در خبرنامه ما عضو شوید تا در سریعترین زمان از جدیدترین اخبار و مقالات ما با خبر شوید.

اشتراک گذاری مطلب
امنیت در طراحی سایت
آنچه در این مقاله میخوانیم

وقتی کاربر وارد یک سایت می شود، اطلاعات مختلفی میان مرورگر او و سرور رد و بدل می شود؛ از آدرس صفحات و اطلاعات فرم ها گرفته تا اطلاعات ورود، کوکی های نشست و در سایت های فروشگاهی، داده های مربوط به سفارش و پرداخت. اگر این ارتباط به شکل امن برقرار نشود، بخشی از این اطلاعات می تواند در معرض شنود یا دستکاری قرار بگیرد.

به همین دلیل، امنیت در طراحی سایت فقط به نصب یک افزونه امنیتی یا انتخاب یک هاست مناسب محدود نمی شود. استفاده صحیح از HTTPS و TLS یکی از پایه های امنیت ارتباط میان کاربر و سرور است.

به زبان ساده، HTTPS نسخه امن HTTP است که ارتباط را با استفاده از TLS محافظت می کند. این ارتباط به طور کلی سه مزیت مهم دارد: محرمانگی اطلاعات، حفظ یکپارچگی داده ها و کمک به احراز هویت سرور.

SSL و HTTPS چیستند و چه تفاوتی با HTTP دارند؟

HTTP پروتکلی برای انتقال اطلاعات میان مرورگر و سرور است، اما در حالت عادی مکانیزم رمزنگاری ارتباط را فراهم نمی کند. HTTPS در واقع HTTP روی یک ارتباط محافظت شده با TLS است.

اصطلاح SSL هنوز در بازار و بین کاربران بسیار رایج است، اما از نظر فنی پروتکل های قدیمی SSL دیگر نباید استفاده شوند و فناوری مدرن مورد استفاده برای این ارتباط TLS است. OWASP نیز SSLv2 و SSLv3 را ناامن و منسوخ می داند و استفاده از TLS را توصیه می کند.

بنابراین وقتی در زمان طراحی سایت درباره «گواهی SSL» صحبت می شود، معمولا منظور گواهی دیجیتالی است که برای فعال کردن ارتباط HTTPS و TLS روی دامنه استفاده می شود.

SSL چیست و چه ارتباطی با TLS دارد؟

SSL نام فناوری قدیمی تر برای ایجاد ارتباط امن بود. TLS نسخه تکامل یافته آن است و امروزه باید از نسخه های مدرن TLS استفاده شود.

بنابراین تفاوت اصطلاحی را می توان این طور خلاصه کرد:

مورد توضیح
HTTP انتقال معمول اطلاعات بدون رمزنگاری ارتباط
HTTPS HTTP روی ارتباط امن TLS
SSL فناوری قدیمی که دیگر نباید استفاده شود
TLS فناوری مدرن برای محافظت از ارتباط
گواهی دیجیتال برای احراز هویت دامنه و ایجاد اعتماد در ارتباط TLS استفاده می شود

در نتیجه، وقتی گفته می شود «SSL سایت را فعال کنید»، از نظر فنی بهتر است موضوع را به شکل «فعال سازی HTTPS با TLS و یک گواهی معتبر» در نظر بگیریم.

HTTPS چگونه از اطلاعات در مسیر انتقال محافظت می کند؟

فرض کنید کاربر اطلاعاتی را در یک فرم سایت وارد می کند. این اطلاعات باید از مرورگر به سمت سرور ارسال شود. TLS این ارتباط را به شکلی رمزنگاری می کند که شنودگر شبکه نتواند به سادگی محتوای انتقال یافته را بخواند.

TLS علاوه بر محرمانگی، برای حفظ یکپارچگی داده ها نیز کاربرد دارد؛ یعنی مهاجم نباید بتواند اطلاعات منتقل شده را در مسیر تغییر دهد بدون اینکه این تغییر قابل تشخیص باشد. همچنین گواهی و سازوکار TLS به مرورگر کمک می کند سرور مورد نظر را احراز هویت کند.

چرا استفاده از HTTPS در طراحی سایت ضروری است؟

HTTPS فقط برای سایت هایی که اطلاعات بانکی دریافت می کنند اهمیت ندارد. هر سایتی که کاربر در آن وارد حساب کاربری شود، فرم ارسال کند، اطلاعاتی دریافت کند یا با سرویس های مختلف ارتباط داشته باشد، باید ارتباط خود را به شکل امن برقرار کند.

OWASP توصیه می کند TLS برای تمام صفحات استفاده شود، نه فقط صفحه ورود یا صفحاتی که ظاهرا اطلاعات حساس دارند؛ زیرا یک صفحه بدون TLS می تواند فرصت شنود یا دستکاری ارتباط را ایجاد کند.

محافظت از اطلاعات کاربران و داده های حساس

اطلاعات ورود، شناسه نشست، فرم های تماس و سایر داده هایی که میان مرورگر و سرور منتقل می شوند، در صورت استفاده صحیح از HTTPS در مسیر انتقال محافظت می شوند.

برای مثال، اگر یک سایت خدماتی فرم درخواست مشاوره داشته باشد، بهتر است اطلاعات ارسال شده کاربر از طریق ارتباط رمزنگاری شده منتقل شود. در سایت هایی که حساب کاربری یا فرایند خرید دارند، اهمیت این موضوع بیشتر نیز می شود.

البته باید توجه داشت که HTTPS فقط از داده در حال انتقال محافظت می کند. HTTPS به تنهایی امنیت پایگاه داده، سیستم مدیریت محتوا، رمز عبور کاربران یا کدهای سایت را تضمین نمی کند.

جلوگیری از دستکاری ارتباط میان کاربر و سایت

TLS علاوه بر رمزنگاری، به حفظ یکپارچگی ارتباط کمک می کند. این موضوع اهمیت زیادی دارد، زیرا تهدید امنیتی فقط خواندن اطلاعات نیست؛ تغییر دادن اطلاعات در مسیر نیز می تواند خطرناک باشد.

برای نمونه، اگر ارتباط یک صفحه به شکل ناامن برقرار شود، مهاجم می تواند تلاش کند محتوای انتقال یافته را دستکاری کند یا محتوای مخرب به ارتباط تزریق کند. OWASP به همین دلیل استفاده از TLS را برای تمام صفحات توصیه می کند.

افزایش اعتماد کاربران هنگام ورود به سایت

مرورگرها برای سایت هایی که از HTTPS استفاده نمی کنند ممکن است هشدارهای امنیتی نمایش دهند. Google نیز استفاده از HTTPS را برای افزایش امنیت کاربران و سایت ها توصیه می کند و سایت های HTTP ممکن است در Chrome با برچسب «Not Secure» نمایش داده شوند.

این مسئله از نظر تجربه کاربری نیز مهم است. کاربری که هنگام ورود اطلاعات تماس یا ثبت سفارش با هشدار امنیتی مواجه شود، ممکن است نسبت به ادامه فرایند تردید کند.

SSL چیست؟

SSL و HTTPS دقیقا از چه چیزهایی محافظت می کنند؟

برای درک بهتر موضوع، باید بین مواردی که HTTPS پوشش می دهد و مواردی که خارج از محدوده آن هستند تفاوت بگذاریم.

HTTPS از این موارد محافظت می کند HTTPS به تنهایی این موارد را حل نمی کند
اطلاعات در حال انتقال آسیب پذیری افزونه ها
اطلاعات فرم ها در مسیر انتقال رمز عبور ضعیف
کوکی های قابل انتقال در ارتباط نفوذ به سرور
بخشی از خطرات شنود شبکه کد مخرب در سایت
یکپارچگی ارتباط آسیب پذیری SQL Injection
احراز هویت سرور از طریق TLS مشکلات امنیتی CMS

بنابراین HTTPS باید یکی از لایه های امنیت سایت باشد، نه اینکه جایگزین تمام اقدامات امنیتی شود.

آیا HTTPS روی سئو و رتبه سایت تاثیر دارد؟

بله، اما نباید تصور کرد که نصب SSL به تنهایی باعث جهش رتبه سایت می شود.

Google از سال ۲۰۱۴ استفاده از HTTPS را به عنوان یک سیگنال رتبه بندی اعلام کرده است و در مستندات فعلی Search Central نیز امنیت سایت یکی از جنبه های تجربه صفحه محسوب می شود. با این حال، Google تاکید می کند که سیستم های رتبه بندی از مجموعه ای از سیگنال ها استفاده می کنند و یک عامل منفرد تضمین کننده رتبه بالا نیست.

از طرف دیگر، HTTPS می تواند از نظر فنی نیز روی مدیریت URLها تاثیر داشته باشد. Google در مستندات فعلی خود اعلام کرده که در شرایط عادی نسخه HTTPS را نسبت به نسخه HTTP مشابه به عنوان canonical ترجیح می دهد؛ البته مشکلاتی مانند گواهی نامعتبر، وابستگی های ناامن یا Redirectهای اشتباه می توانند این وضعیت را تغییر دهند.

بنابراین رابطه HTTPS و SEO را بهتر است این طور در نظر بگیریم:

HTTPS یک الزام مهم فنی و امنیتی برای سایت مدرن است، اما به تنهایی استراتژی SEO محسوب نمی شود.

در طراحی سایت امن چه مواردی باید بررسی شود؟

امنیت HTTPS فقط با نصب گواهی تمام نمی شود. پیکربندی صحیح سایت بعد از نصب نیز اهمیت زیادی دارد.

نصب و اعتبارسنجی گواهی TLS

گواهی باید برای دامنه صحیح صادر شده باشد و توسط مرورگرها و سیستم عامل های معتبر شناخته شود. همچنین تاریخ اعتبار آن باید کنترل شود.

امروزه سرویس هایی مانند Let’s Encrypt امکان دریافت گواهی های TLS مورد اعتماد مرورگرها را به صورت رایگان و با فرایند خودکار فراهم می کنند.

بنابراین پرداخت هزینه برای خود گواهی، لزوما معیار امنیت بیشتر نیست. آنچه اهمیت دارد، اعتبار گواهی، نوع آن، پیکربندی صحیح TLS و نگهداری مناسب کلیدهای خصوصی است.

انتقال کامل صفحات از HTTP به HTTPS

اگر سایت قبلا با HTTP در دسترس بوده است، نباید فقط صفحه اصلی را به HTTPS منتقل کرد و سایر URLها را رها کرد.

معمولا باید:

  1. نسخه HTTPS صفحات فعال شود.
  2. URLهای HTTP به نسخه متناظر HTTPS منتقل شوند.
  3. لینک های داخلی اصلاح شوند.
  4. Canonicalها به نسخه صحیح اشاره کنند.
  5. Sitemap با URLهای HTTPS هماهنگ شود.
  6. نسخه HTTPS در Search Console بررسی شود.
  7. Redirectها آزمایش شوند.

Google برای مهاجرت HTTP به HTTPS توصیه می کند سایت جدید پیش از انتقال به خوبی تست شود و Redirectهای URLهای قدیمی به نسخه جدید به درستی تنظیم و بررسی شوند.

جلوگیری از Mixed Content

یکی از خطاهای رایج بعد از فعال سازی HTTPS، Mixed Content است.

در این حالت صفحه اصلی با HTTPS باز می شود اما بخشی از منابع آن، مانند فایل JavaScript، CSS، تصویر یا منابع دیگر، همچنان از HTTP بارگذاری می شوند.

این وضعیت هم از نظر امنیتی نامطلوب است و هم ممکن است باعث شود مرورگر برخی منابع را مسدود کند. OWASP توصیه می کند محتوای HTTP و HTTPS در یک صفحه با یکدیگر مخلوط نشوند.

تنظیم Redirect و Canonical

بعد از فعال سازی HTTPS باید مشخص باشد که نسخه اصلی سایت کدام است.

برای مثال:

http://example.com

باید به نسخه امن متناظر خود منتقل شود:

https://example.com

همچنین Canonical، Sitemap و لینک های داخلی باید با نسخه اصلی سایت هماهنگ باشند.

این کار فقط برای کاربران نیست؛ موتور جستجو نیز باید بتواند رابطه میان نسخه های مختلف URL را به درستی تشخیص دهد. Google نیز HTTPS را در شرایط عادی نسبت به HTTP مشابه ترجیح می دهد.

استفاده صحیح از HSTS و کوکی های Secure

HSTS یا HTTP Strict Transport Security به مرورگر اعلام می کند که ارتباط با دامنه باید از طریق HTTPS انجام شود.

این قابلیت می تواند در برابر برخی سناریوهای حمله Man-in-the-Middle و تلاش برای دسترسی از طریق HTTP کمک کند.

با این حال، فعال سازی HSTS باید با دقت انجام شود. پیکربندی اشتباه یا استفاده از تنظیمات سختگیرانه بدون بررسی زیرساخت می تواند باعث شود کاربران در صورت وجود مشکل گواهی نتوانند به سایت دسترسی پیدا کنند.

همچنین در سایت هایی که از کوکی برای نشست کاربر استفاده می کنند، تنظیم ویژگی Secure برای کوکی ها اهمیت دارد تا کوکی در ارتباط HTTP ارسال نشود.

امنیت در طراحی سایت

HTTPS برای چه سایت هایی اهمیت بیشتری دارد؟

از نظر اصول امنیتی، HTTPS باید برای تمام سایت های عمومی استفاده شود؛ اما میزان حساسیت آن در بعضی پروژه ها بیشتر است.

  • فروشگاه های اینترنتی

در فروشگاه اینترنتی، کاربر ممکن است وارد حساب کاربری شود، آدرس و اطلاعات سفارش وارد کند یا به درگاه پرداخت منتقل شود.

برای مثال، هنگام ساخت سایت فروشگاهی، مخصوصا طراحی سایت طلافروشی باید HTTPS از ابتدا در معماری و پیکربندی سایت در نظر گرفته شود، نه اینکه بعد از تکمیل پروژه به عنوان یک کار جانبی اضافه شود.

نکته مهم این است که امنیت صفحه پرداخت فقط به HTTPS سایت محدود نیست و امنیت درگاه پرداخت، سرور، CMS، افزونه ها و فرایند مدیریت اطلاعات نیز باید جداگانه بررسی شود.

  • سایت های پزشکی و خدمات درمانی

در سایت های پزشکی، کاربران ممکن است اطلاعاتی را در فرم های تماس، درخواست نوبت یا سایر بخش های سایت وارد کنند.

به همین دلیل، استفاده از HTTPS برای انتقال این اطلاعات اهمیت زیادی دارد. اگر در فرایند طراحی سایت پزشکی فرم یا حساب کاربری وجود دارد، ارتباط امن باید از ابتدا بخشی از طراحی فنی پروژه باشد.

HTTPS البته به معنای انطباق کامل سایت با تمام الزامات مربوط به حفاظت از داده های پزشکی نیست و این موضوع نیازمند بررسی الزامات قانونی، فنی و فرایندی مرتبط با پروژه است.

  • سایت های شرکتی و خدمات تخصصی

حتی اگر یک سایت شرکتی فقط اطلاعات خدمات و فرم تماس داشته باشد، HTTPS همچنان اهمیت دارد.

برای نمونه، اطلاعات ارسال شده در فرم مشاوره، ورود مدیر سایت و کوکی های نشست باید از طریق ارتباط امن منتقل شوند. همچنین نمایش هشدار امنیتی مرورگر می تواند روی اعتماد کاربر نسبت به یک کسب و کار اثر منفی بگذارد.

آیا داشتن SSL به تنهایی یعنی سایت کاملا امن است؟

خیر؛ این یکی از مهم ترین نکاتی است که هنگام بررسی امنیت سایت باید در نظر گرفت.

HTTPS یک لایه امنیتی برای ارتباط میان کاربر و سرور است، اما نمی تواند آسیب پذیری های موجود در CMS، افزونه ها، قالب، سرور، کدهای اختصاصی، احراز هویت یا پایگاه داده را برطرف کند.

برای مثال، اگر یک سایت وردپرسی دارای افزونه آسیب پذیر باشد، فعال بودن HTTPS مانع سوءاستفاده از آن آسیب پذیری نمی شود.

به همین دلیل، امنیت سایت باید به صورت چندلایه بررسی شود:

  • HTTPS و TLS
  • امنیت سرور و هاست
  • به روز بودن CMS و افزونه ها
  • مدیریت دسترسی کاربران
  • رمزهای عبور قوی
  • پشتیبان گیری منظم
  • محافظت از پنل مدیریت
  • کنترل آسیب پذیری های نرم افزاری
  • تنظیمات امنیتی HTTP Headerها
  • مانیتورینگ و بررسی رخدادهای امنیتی

OWASP نیز در کنار TLS، مجموعه ای از اقدامات دیگر مانند مدیریت نشست، تنظیم کوکی ها و Security Headerها را برای کاهش ریسک های مختلف توصیه می کند.

سوالات متداول درباره SSL و HTTPS

آیا SSL برای همه سایت ها ضروری است؟

استفاده از HTTPS برای سایت های عمومی امروزی یک استاندارد مهم امنیتی است و فقط به فروشگاه های اینترنتی محدود نمی شود. حتی سایت های شرکتی و محتوایی نیز بهتر است تمام ارتباطات خود را از طریق HTTPS ارائه کنند. OWASP استفاده از TLS برای تمام صفحات را توصیه می کند.

آیا SSL رایگان امنیت کمتری نسبت به SSL پولی دارد؟

خیر، رایگان یا پولی بودن به تنهایی معیار امنیت نیست. سرویس هایی مانند Let’s Encrypt گواهی های TLS مورد اعتماد مرورگرها را به صورت رایگان ارائه می کنند. امنیت واقعی به نوع گواهی، اعتبار آن و مهم تر از همه پیکربندی صحیح TLS و زیرساخت سایت وابسته است.

آیا HTTPS باعث افزایش رتبه سایت در گوگل می شود؟

HTTPS یک سیگنال رتبه بندی Google است، اما وزن آن در مقایسه با کیفیت محتوا و سایر سیستم های رتبه بندی محدود است. بنابراین نباید تصور کرد که فعال کردن SSL به تنهایی باعث رتبه گرفتن سایت می شود.

تفاوت SSL و TLS چیست؟

SSL نام فناوری قدیمی تر است و نسخه های قدیمی آن دیگر نباید استفاده شوند. TLS نسخه مدرن این فناوری است که برای ایجاد ارتباط امن HTTPS استفاده می شود.

آیا بعد از نصب SSL باید سایت را از HTTP به HTTPS منتقل کرد؟

بله. نصب گواهی به تنهایی کافی نیست. باید نسخه HTTPS به عنوان نسخه اصلی سایت تنظیم شود و URLهای HTTP به نسخه متناظر HTTPS منتقل شوند. همچنین لینک های داخلی، Canonical، Sitemap و سایر تنظیمات باید بررسی شوند.

آیا HTTPS یعنی سایت کاملا ضد هک است؟

خیر. HTTPS از ارتباط میان کاربر و سرور محافظت می کند، اما آسیب پذیری های CMS، افزونه ها، سرور، کدهای اختصاصی یا ضعف رمز عبور را برطرف نمی کند.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

20 − 3 =