جشنواره عیدانه راکت | عضویت ویژه راکت برای آخرین بار | افزایش قیمتها از سال جدید | و ...
مشاهده اطلاعات بیشتر...چیزی که فهمیدم در رابطه باهاش اینه که یک مکانیزم امنیتی هست برای جلوگیری از حملات
man-in-the-middle attack (MITM) و cookie hijacking هستش
man-in-the-middle attack (MITM):حملاتی هستش که در اون مهاجم میاد و زمانی که بین دو کاربر ارتباط برقرار میشه مثلا از طریق سوکت
بینشون قرار میگیره و یکی از کاراش استراق سمع هست و میتونه از طرف یک کاربر (از اون دو کاربر) بیادش و پیغام جعلی بعده به کاربر دیگه(مهاجم) و اون کاربر فکر میکنه که اون پیغام رو کاربر سمت مقابلش داده
cookie hijacking:اینم روشی هست برای سرقت کوکی های حساس کاربر مثلا شما آمدید id هش شده کاربر رو تو کوکی هاش ذخیره کردین و بعد با اون id میاید و اهراز هویت انجام میدید
روش پیاده سازیش هم به شکلی هست که موقع پاسخ سرور (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);
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟