【问题标题】:Escaping User Inputted URLs转义用户输入的 URL
【发布时间】:2012-10-08 23:52:08
【问题描述】:

我有一个网站,允许用户输入网站的 URL 以与其他用户共享。

我们目前在向其他用户显示 URL 时会对其进行 htmlentities() 处理,但这有时会由于转换有效字符而导致 URL 损坏。

从 URL 中删除潜在恶意字符同时尽可能少破坏 URL 的最佳方法是什么?

Example
Original URL: website.com?foo=1&bar=2
Escaped/Broken URL: website.com?foo=1&bar=2

【问题讨论】:

标签: php


【解决方案1】:

这取决于你输出到什么,但如果是 html,你可以使用 htmlspecialchars 代替。那只会转义html中具有特殊含义的字符。

【讨论】:

  • 不幸的是,这可能会破坏带有与号 (&) 的任何 URL。
  • @Chip 不会破坏它,把它放在href 或作为文本,它会正常显示和工作。
  • 感谢 Jeroen,我试图将 URL 直接输入到我的浏览器中,导致链接断开。没想到当在一个锚标签点击浏览器会自动转换它。
【解决方案2】:

您应该使用 REGEX 来满足您的自定义规则。

【讨论】:

    猜你喜欢
    • 2013-10-15
    • 2015-07-15
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    • 2012-06-10
    • 1970-01-01
    相关资源
    最近更新 更多