Pull to refresh

Comments 8

Как соотносятся между собой флаги secure, httpOnly. Про secure понятно, что передается по защищенному соединению на сервер, а что насчет httpOnly, «доступны только через HTTP-протокол». Кому доступны? Передаются через HTTP на сервер или на клиент? И почему такой ограниченный выбор: или доступны скриптовым языкам, или доступны на сбор по пути между сервером и клиентом?
Лучше сразу на примере покажу:
Set-Cookie: SessionId="c4ca4238a0b923820dcc509a6f75849b"; Domain=account.test.com; Secure; HttpOnly


Наличие флага HttpOnly — кука не будет доступна для браузерного Javascript. То есть через <script>document.cookie</script> её не извлечь. Полезно в контексте защиты от XSS.
Наличие флага Secure — кука будет передаваться браузером только по https (если зайти на сайт по http, то браузер куку не подставит)

А ограниченный выбор опций обусловлен браузерными спецификациями. Вот тут можно их поглядеть
Secure — передается по https.
httpOnly — передается по http или как?
httpOnly будет передаваться и по http и по https.
Но через JS её не извлечь (типа no js, http only)

Эти две опции могут сочетаться, следовательно комбинация Secure+HTTPOnly будет означать «куку передавать только по https, а для Javascript её сделать недоступной»

P.S. Да, они непонятно называются, увы :(
Мне кажется или в конфиге nginx ошибка(https://pastebin.com/nYp7uVbB)?
```
if ngx.header[«X-Managed»] ~= nil and ngx.header[«X-Managed»] ~= «secured») then
ngx.exit(ngx.HTTP_FORBIDDEN)
end
```

Такое условие ожидает: хедер не равен nil и не равен 'secured'.
Поправьте меня если ошибаюсь.
В конфиге много разных ошибок.
Действительно, текущее условие НЕ пропустит запрос содержащий заголовок X-Managed с отличным от secured значением, при этом в случае отсутствия заголовка X-Managed запрос БУДЕТ пропущен.
Таким образом смысл в подобной «защите» отсутствует т.к. злоумышленник получит доступ к защищаемой директории просто не выставив заголовок X-Managed. Отдельно стоит отметить, что использовать подобный «ключ» secured в качестве средства ограничения доступа не является лучшим решением с точки зрения безопасности, даже если бы она была корректно имплементирована.

Пример корретной имплементации:
if ngx.header[«X-Managed»] ~= «secured» then 
ngx.exit(ngx.HTTP_FORBIDDEN) 
end


P.S. А ещё там ')' лишняя
Такой вопрос по пункту 9. Почему бы было не указать программу SSLUnpinning? Если у нас рутованный телефон, то скорее всего на нём стоит TWRP, через него накатываем Magisk и Xposed, через Xposed модуль SSLUnpinning. Тут анпиннинг обходится 1 кликом. Возможно, я что-то не знаю по поводу этого и так делать не надо.
Вы правы, модуль «SSLUnpinning» делает примерно тоже самое, что и соответствующая команда у Objection.

Но по личным ощущениям Objection как-то уверенее байпасит пининнг, обновляется чаще и кажется больше библиотек умеет «хукать».

А уж если человек готов накатать скриптик для Фриды, то ему вообще море по колено будет х)

Еще встречали случаи, когда программы детектили установленный XPosed и плохо себя вели из-за этого.

Sign up to leave a comment.