جشنواره عیدانه راکت | عضویت ویژه راکت برای آخرین بار | افزایش قیمت‌ها از سال جدید | و ...

مشاهده اطلاعات بیشتر...
ثانیه
دقیقه
ساعت
روز
نیما - ش
4 سال پیش توسط نیما - ش مطرح شد
3 پاسخ

HSTS Policy در سایت

دوستان سلام،

کسی میتونه توضیحی درمورد HSTS Policy بده که چی هست و چطور میشه تو سایت آن را پیاده سازی کرد؟


ثبت پرسش جدید
سهیل حیدری
@hbr 4 سال پیش مطرح شد
1

چیزی که فهمیدم در رابطه باهاش اینه که یک مکانیزم امنیتی هست برای جلوگیری از حملات
man-in-the-middle attack (MITM) و cookie hijacking هستش
man-in-the-middle attack (MITM):حملاتی هستش که در اون مهاجم میاد و زمانی که بین دو کاربر ارتباط برقرار میشه مثلا از طریق سوکت
بینشون قرار میگیره و یکی از کاراش استراق سمع هست و میتونه از طرف یک کاربر (از اون دو کاربر) بیادش و پیغام جعلی بعده به کاربر دیگه(مهاجم) و اون کاربر فکر میکنه که اون پیغام رو کاربر سمت مقابلش داده
cookie hijacking:اینم روشی هست برای سرقت کوکی های حساس کاربر مثلا شما آمدید id هش شده کاربر رو تو کوکی هاش ذخیره کردین و بعد با اون id میاید و اهراز هویت انجام میدید


سهیل حیدری
@hbr 4 سال پیش مطرح شد
1

روش پیاده سازیش هم به شکلی هست که موقع پاسخ سرور (response) یک header ست میکنید که تو اون هدر یک خصوصیت داره به اسم Strict-Transport-Security که باید براش زمان مشخص کنید و کلید دسترسی که تو اون زمان مشخص شده کاربر ها با هم اتصال برقرار میکنن از طریق پروتکل امن https و اگه درخواستی از نوع http به سمت سرور ارسال بشه به طور خودکار کاربر به سمت اتصال امن https منتقل میشه و با این حرکت جلوگیری میشه از اون حملات
تو نود جی اس این دستورات:

var httpProxy = require('http-proxy');

// https server to decrypt TLS traffic and direct to a normal HTTP backend
var proxy = httpProxy.createProxyServer({
  target: {
host: 'localhost',
port: 9009 // or whatever port your local http proxy listens on
  },
  ssl: {
key: fs.readFileSync('valid-ssl-key.pem', 'utf8'),
cert: fs.readFileSync('valid-ssl-cert.pem', 'utf8')
  }
}).listen(443); // HTTPS listener for the real server

میادش و اگر کاربر بخواد از طریق پروتکل http اتصال برقرار کنه هدایتش میکنه به سمت پروتکل https و کد زیر وقتی کاربر redirect شد به پروتکل https یکسری header که در بالا توضیح داده شد رو ست میکنه برای اتصال امن:

var server = http.createServer(function(req, res) {
  res.statusCode = 301;
  res.setHeader('Location', 'https://' + req.headers.host.split(':')[0] + req.url);
  res.setHeader('Strict-Transport-Security', 'max-age=31536000; includeSubDomains');
  return res.end();
});

server.listen(80);

نیما - ش
تخصص : برنامه نویس وب
@nimageneral 4 سال پیش مطرح شد
0

@khosravi424
ممنونم محمد جان لطف کردید


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام