SSL和W3 XHTML验证器

时间:2011-08-20 20:46:29

标签: ssl https

这可能是一个愚蠢的新手问题,所以对此有所了解。

我的网站正在使用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

错误提到请求验证器不安全。所以我尝试更改<a>标签的href以使用https作为验证器,但之后页面根本不加载(我猜因为验证器不使用SSL)。

有没有人知道解决这个问题的方法?我猜测没有办法按原样使用代码,但也许有办法将uri=referer更新为uri=https://mysite.com/...?有没有办法动态抓取当前页面的URL?

此外,仅供进一步参考,SSL是否只是阻止访问引用请求标头?

哦,我知道我可以使用http而不是https访问我的网站,验证工作正常。但我宁愿让它配置为与https一起使用。

2 个答案:

答案 0 :(得分:2)

至于“验证图标”问题:
这通常会导致显示关于“不安全的项目”的消息(=混合的http + https内容)...这样的星座中没有正式支持验证图标...描述了部分解决方法here

如果您想动态获取uri,我怀疑您必须使用JavaScript,然后在DOM中创建/添加<a> ...

至于SSL / Referer问题:
standard表示客户端(=浏览器)只有在目标是安全的情况下才应发送referer - 所以是的,在混合情况下,引用者不会被发送到非安全URL。

答案 1 :(得分:0)

好的,所以看起来没有办法只使用HTML来实现这一点。相反,我决定使用JavaScript来处理这个问题。

我从W3徽标周围删除了<a>标记,并添加了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变量如何修剪&#34; https&#34;从URL,而是使用&#34; http&#34;。所以我只是绕过了使用HTTP referer标题。

希望这有助于其他人。