Там какой-либо путь состоит в том, чтобы удалить HttpOnly cookie из тестов Селена C#?

У меня есть ряд тестов Селена C#, которые должны удалить cookie, которому установили флаг HttpOnly.

К сожалению, DefaultSelenium.GetCookie() и DefaultSelenium.DeleteCookie() команды не могут получить доступ к cookie, потому что ему установили тот флаг HttpOnly. Я подтвердил это путем удаления флага вручную и проверки, что последующие вызовы к любому из тех методов затем счастливо могут управлять рассматриваемым cookie.

Там какой-либо другой путь состоит в том, чтобы сделать это через Селен клиентский драйвер.NET?

Все приветствующиеся идеи!

5
задан BenA 25 May 2010 в 14:58
поделиться

1 ответ

Поскольку мне не удалось сделать это через клиентский драйвер, мне пришлось искать альтернативный метод. К счастью, тестируемое веб-приложение имеет набор тестовых страниц, которые позволяют взаимодействовать с файлом cookie сеанса (являющимся файлом cookie HttpOnly, к которому я пытался получить доступ), и поэтому я смог достичь своей цели, автоматизируя эти страницы вместо этого.

Для всех, кто сталкивается с этой проблемой, есть хороший SO-ответ здесь о том, как HttpOnly записывается в ASP.NET.

Кроме того, этот ответ SO указывает, как HttpOnly можно управлять через файл web.config приложения, с оговоркой, что его можно только включить, а не выключить.

Любой, кто хочет изменить свое приложение в целях тестирования, должен проверить этот обходной путь , в основном изменяя метод Session_Start в Global.asax, чтобы убрать флаг HttpOnly, чтобы он был доступен для клиентского скрипта. Однако этот вид обходного пути следует использовать только в тестовой среде, поскольку он открывает дыру в безопасности, которую HttpOnly был введен для закрытия, а именно уязвимость XSS. Джефф Этвуд написал об этом хороший пост в блоге здесь .

4
ответ дан 15 December 2019 в 00:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: