2015-01-17 2 views
1

Когда пользователь посещает веб-страницу с включенным HSTS, браузер обнаруживает это и не забудет использовать HTTPS для запросов на этот сайт в будущем. Есть ли способ запросить страницу в AS3 и определить, была ли возвращена страница с поддержкой HSTS (либо напрямую через AS3 в SWF, либо с помощью ExternalInterface)?Есть ли способ определить, поддерживает ли сайт HSTS в AS3?

+0

Когда вы говорите «сайт», вы имеете в виду любой сайт в Интернете? – akmozo

+0

Да, но, если быть более конкретным, на любом сайте, у которого есть правильно настроенный файл crossdomain.xml (скажем, разрешить с '*'). Так может ли SWF запросить саму страницу или ресурс из домена и каким-то образом определить, включен ли сайт HSTS? – zretep

+0

Не знаю, как это сделать. AS3 имеет очень ограниченную функциональность, когда речь идет об HTTP, протоколах, кодах ответов и в основном заголовках. Вы можете проверить, поддерживает ли сайт HTTPS, но это не гарантирует, что HSTS включен. Может быть, есть некоторые взломы, чтобы читать заголовки через ExternalInterface, но я не буду рассчитывать на это. Удачи! :) –

ответ

1

Как википедия определить его, HSTS (HTTP Strict Transport Security) является информация, которая

... передается от сервера к агенту пользователя через поле заголовка ответа HTTP под названием «Строгий-Transport-Security».

Здесь мы можем понять, что эта информация доступна только из заголовков ответов HTTP. Для Flash, это невозможно получить заголовки ответа HTTP, в отличие от воздуха, который может получить его с помощью HTTPStatusEvent:

В Flash Player существует только один тип HTTPStatus события: httpStatus. В среде выполнения AIR FileReference, URLLoader или URLStream могут зарегистрироваться для прослушивания httpResponseStatus, который включает свойства responseURL и responseHeaders. Эти свойства не определены в событии httpStatus.

Для JavaScript (или ExternalInterface, если вы хотите), чтобы получить заголовки ответа HTTP, вы должны использовать AJAX, который может получить его только с CORS (Cross-Origin Resource Sharing) Enabled сервер, который позволит на стороне клиента запросы кросс-происхождения, в противном случае вы будете заблокированы сервером, и ваш браузер wil покажет вам симпатичную ошибку «No Access-Control-Allow-Origin ...», конечно, все это с использованием browser which can do XMLHttpRequests across domains.

Заключение: ни Flash, ни javascript (может быть, в некоторых случаях, когда разрешен CORS) действительно может быть получен, если включен HSTS или нет.

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