- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我做了很多搜索,还阅读了 PHP $_SERVER docs .我是否有权在我的 PHP 脚本中使用哪个用于在整个网站中使用的简单链接定义?
$_SERVER['SERVER_NAME']
基于您的 Web 服务器的配置文件(在我的例子中是 Apache2),并且取决于几个指令:(1) VirtualHost,(2) ServerName, (3) UseCanonicalName等
$_SERVER['HTTP_HOST']
基于来自客户端的请求。
因此,在我看来,为了使我的脚本尽可能兼容而使用的正确方法是 $_SERVER['HTTP_HOST']
。这个假设正确吗?
后续评论:
我想在阅读这篇文章并注意到有些人说“他们不会信任任何 $_SERVER
vars”后我有点偏执:
http://markjaquith.wordpress.com/2009/09/21/php-server-vars-not-safe-in-forms-or-links/
http://php.net/manual/en/reserved.variables.server.php#89567 (评论:Vladimir Kornea 14-Mar-2009 01:06)
显然讨论主要是关于 $_SERVER['PHP_SELF']
以及为什么你不应该在没有适当转义的情况下在表单 Action 属性中使用它以防止 XSS 攻击。
我对上述原始问题的结论是,对网站上的所有链接使用 $_SERVER['HTTP_HOST']
是“安全的”,而不必担心 XSS 攻击,即使在使用时也是如此在表格中。
如果我错了,请纠正我。
最佳答案
这可能是每个人的第一个想法。但这有点困难。见 Chris Shiflett’s article SERVER_NAME
Versus HTTP_HOST
.
似乎没有 Elixir 。只有当你 force Apache to use the canonical name您将始终使用 SERVER_NAME
获得正确的服务器名称。
所以你要么选择它,要么根据白名单检查主机名:
$allowed_hosts = array('foo.example.com', 'bar.example.com');
if (!isset($_SERVER['HTTP_HOST']) || !in_array($_SERVER['HTTP_HOST'], $allowed_hosts)) {
header($_SERVER['SERVER_PROTOCOL'].' 400 Bad Request');
exit;
}
关于PHP $_SERVER ['HTTP_HOST' ] vs. $_SERVER ['SERVER_NAME' ],我是否正确理解了手册页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1459739/
在 firefox 中,链接手形光标显示正常,但在 IE7 中显示文本光标。 如何在所有浏览器的链接上获得相同的光标(手)? 我可以在 CSS 重置中添加一些内容,以便在所有浏览器中的链接上获取光标吗
我试图在表单元素上方显示我的表单标签,所以我在我的 CSS 中使用了 display:block。但是,我无法通过这种方式每行显示超过 1 个表单元素。 如何正确更新我的 CSS 以在表单元素上方显示
我想找到人手的宽度,但卡在手上的洞上。 我有一只手的图片并找到了它的二进制文件。手上有一个圆圈,其半径和中心已知(引用对象)。我想找到手的宽度,但它上面有一些补丁(孔),这阻碍了找到手的最佳宽度。 这
我尝试为一款游戏制作一个机器人,但他们有很酷的反像素机器人技术。 所以我想,“如果我可以制作一个机器人,只检查光标是否变为手形然后单击,它就会起作用,”因为我需要收集奖金盒,当你将光标指向它时,它变为
我尝试为一款游戏制作一个机器人,但他们有很酷的反像素机器人技术。 所以我想,“如果我可以制作一个机器人,只检查光标是否变为手形然后单击,它就会起作用,”因为我需要收集奖金盒,当你将光标指向它时,它变为
所以我有一副牌的代码,但我不知道如何让另一个类来处理 4 手牌,每手 10 张牌。另一类应在屏幕上以文字形式打印 4 手 10 张随机卡片。有人可以向我展示如何完成此任务的代码吗?我也使用 blueJ
我正在尝试通过在开放正方形内插入图标来使用 fontawesome 创建图标。悬停时,我想更改正方形内背景的颜色,以及正方形的实际颜色和图标颜色。 我在这里举了一个例子:http://jsfiddle
当我手动启 Action 业时,我正在寻找设置变量的正确方法。 我试过 : stages: - test my_job: stage: test script: - echo "H
我必须添加以下代码: a {cursor:pointer;} 在 angular-ui-bootstrap 中将光标更改为标签、分页、下拉切换等链接上的指针/手。 为什么默认不改为指针?这是故意的吗?
我是一名优秀的程序员,十分优秀!