Есть ли способ удалить файл cookie HttpOnly из тестов С# Selenium?

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

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

Есть ли другой способ сделать это с помощью клиентского драйвера Selenium .NET?

Приветствуются все идеи!


person BenA    schedule 25.05.2010    source источник


Ответы (1)


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

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

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

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

person BenA    schedule 27.05.2010
comment
Спасибо, Бен, сэкономил мне много времени. - person Alex Okrushko; 01.05.2013