Perl Escape::HTML 函数不转义#?

发布于 2024-10-19 17:13:28 字数 257 浏览 2 评论 0原文

设法进一步缩小代码范围:

http://pastebin.com/J40Atm9m

抱歉,很痛苦,但是我真的以为我已经通过在 GetQueryString 子例程中使用 uri_escape 破解了它,但现在我真的没有主意了,否则我不会问。

非常感谢任何见解。

马丁

Managed to narrow the code down a lot more:

http://pastebin.com/J40Atm9m

Sorry to be a pain but I really thought I had it cracked by using uri_escape in the GetQueryString subroutine but now I'm really out of ideas otherwise I wouldn't ask.

Any insights are much appreciated.

Martin

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

油饼 2024-10-26 17:13:28

这是很多的代码。减少测试用例会很有帮助。

我不会阅读所有内容,而是假设您正在做的事情:

  1. 获取原始数据
  2. 将原始数据放入 URI 中
  3. 对 HTML 的 URI 进行编码
  4. 您将编码后的 URI 放入 HTML

如果是这样,那么您错过的是:

您需要对 URI 的数据进行编码

That is a lot of code. A reduced test case would be helpful.

Rather than read all of it, I'm going to assume that this is what you are doing:

  1. You get raw data
  2. You put raw data in a URI
  3. You encode the URI for HTML
  4. You put the encoded URI in the HTML

If so, then what you missed is this:

You need to encode the data for the URI.

杀手六號 2024-10-26 17:13:28

HTML::Escape 不应该转义“#”,因为“#”对于 HTML 来说并非不安全。问题在于,在放置数据之前,您没有对数据进行 URI 转义到 URI 中;为此使用 URI::Escape

HTML::Escape isn't supposed to escape "#" because "#" isn't unsafe for HTML.The problem is that you're not URI-escaping your data before you're putting it into a URI; use URI::Escape for that.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文