2014-02-06 3 views
0

Мне нужно предотвратить атаки с помощью HTML-файлов cookie. Я использую Ext.state.CookieProvider для управления сессиями; но я хочу, чтобы он был неизменным для конечных пользователей (фактически угонщиков). Он будет изменяться только с помощью функций приложения. Есть ли какие-либо решения для этой ситуации?Ext JS 4 - неизменные куки

ответ

0

Поскольку файлы cookie являются особенностью клиента, всегда есть способ вмешаться в него. Вы должны использовать их в сочетании с сеансами на стороне сервера. Таким образом, ваш способ обнаружить, когда печенье было подделано.

Это не относится к extjs, но обычно применяется к файлам cookie.

+0

спасибо @LorenzMeyer за вашу помощь. Вы абсолютно правы, если тема - это безопасность, нет гарантированного способа. И, конечно, серверная сторона - это реальное место управления файлами cookie; но, как и все мы, мы иногда храним некоторую информацию в файлах cookie. По крайней мере, я не хочу, чтобы это было изменено с помощью простой команды, например 'setCookie ('x', 'y')'. – talha06

1

Я считаю, что это в конечном итоге будет решен с ECMAScript 6 в const функциональности, которая поддерживается в более новых версиях Firefox и Chrome (если вы включите экспериментальную JavaScript):

const cookie = "username=David;"; 
cookie = "username=Lincoln;"; 
console.log(cookie); // returns "username=David;" 

Но кроме ожидая, что, если ваш печенье является объектом, вы можете использовать Object.freeze, который является довольно изящным:

var cookie = {cookie: 'username=David;'}; 
Object.freeze(cookie); 
cookie.cookie = 'username=Lincoln;'; // returns "username=Lincoln;" 
console.log(cookie.cookie); // returns "username=David;" 

к сожалению, объект печенья может быть перезаписаны, но по крайней мере, защищает от простых атак.

+0

То, что я сделал, - это разрешить печенье только для ** 1 раз **. Я реализовал его благодаря своей ценности; он должен быть «null (undefined)», чтобы установить новое значение. – talha06

Смежные вопросы