SSL и W3 XHTML Validator - PullRequest
       8

SSL и W3 XHTML Validator

4 голосов
/ 21 августа 2011

Это может быть глупый вопрос новичка, поэтому прошу прощения за это.

Мой сайт использует SSL-сертификат.Я также включил ссылку валидатора W3 на каждую из своих веб-страниц следующим образом:

<a href="http://validator.w3.org/check?uri=referer"><img src="valid-xhtml1.png" alt="Valid XHTML 1.0 Strict" height="31" width="88" /></a>

(Примечание: скопировано поверх образа валидатора w3, чтобы SSL не жаловался на незащищенные ресурсы).

Когда я делаю это и нажимаю на изображение, чтобы проверить страницу, я получаю сообщение от валидатора:

enter image description here

В сообщении об ошибке указывается, что запрос валидатора небезопасен.Поэтому я попытался изменить href тега <a>, чтобы использовать https для валидатора, но затем страница просто не загружается (наверное, потому что валидатор не использует SSL).

Кто-нибудь знает способ обойти это?Я предполагаю, что нет способа использовать код как есть, но, может быть, есть способ обновить uri=referer до uri=https://mysite.com/...?Есть ли способ динамически получить URL-адрес текущей страницы?

Кроме того, просто для справки, SSL просто предотвращает доступ к заголовку запроса реферера?

О, и я знаюЯ могу просто зайти на мой сайт, используя http вместо https, и валидатор работает.Но я бы лучше настроил его на работу с https.

Ответы [ 2 ]

2 голосов
/ 21 августа 2011

Что касается вопроса «Значок подтверждения»:
Это обычно приводит к отображению сообщений о «незащищенных элементах» (= смешанный контент http + https) ... значок проверки официально не поддерживается в таком созвездии ... частичный обходной путь описан здесь .

Если вы хотите динамически получить URI, я подозреваю, что вам придется использовать JavaScript для этого, а затем создать / добавить <a> в DOM ...

Что касается вопроса SSL / Referer:
Стандарт гласит, что клиент (= браузер) должен отправлять реферер только в том случае, если место назначения безопасно - поэтому да, в смешанных случаях реферер не будет отправлен на незащищенный URL.

0 голосов
/ 23 августа 2011

Хорошо, не похоже, что есть способ сделать это только с помощью HTML. Поэтому вместо этого я решил использовать JavaScript для решения этой проблемы.

Я удалил тег <a> вокруг логотипа W3 и добавил onclick функцию JavaScript validatePage(). Итак, вот в основном шаблон для страницы XHTML Strict, который по-прежнему позволяет включать значок проверки.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
        <title>Title of document</title>
        <script type="text/javascript">
            function validatePage() {
                var validatorUrl = "http://validator.w3.org/check?uri=http" + (document.URL).substring(5);
                window.open(validatorUrl);
            }
        </script>
    </head>
    <body>
        <h1>Test Template Page</h1>
        <p><img src="valid-xhtml1.png" alt="Valid XHTML 1.0 Strict" height="31" width="88" onclick="validatePage()" /></p>
    </body>
</html>

Обратите внимание, как переменная validatorUrl обрезает «https» из URL и вместо этого использует «http». Так что я просто обошел использование заголовка HTTP referer.

Надеюсь, это поможет кому-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...