小编Cli*_*int的帖子

用户输入的安全性是否安全?

经过几个小时的bug搜索后,我发现了一个我最烦人的bug的原因.

当用户在我的网站上输入消息时,他们可以使用明文和html实体对其进行标题.

这意味着在某些情况下,用户将使用常见的html实体图片(如此面部)键入标题.(͡°͜ʖ͡°).

为了防止html注入,我使用htmlspecialchars(); 在标题上,令人讨厌的是,它会在以后输出到页面上时将其html实体格式转换为图片.

( ͡° ͜ʖ ͡°)
Run Code Online (Sandbox Code Playgroud)

我意识到这里的问题是标题被编码为上面的例子,而htmlspecialchar,以及做我想要的和编码可能的html注入,正在将实体中的&符号转换为

&. 
Run Code Online (Sandbox Code Playgroud)

通过取消所有的&符号,并将它们更改回&这解决了我的问题,脸部会按预期出现.

但是我不确定这是否仍然是安全的恶意HTML.解码用户推算标题中的&符号是否安全?如果没有,我该如何解决这个问题呢?

html php sanitization html-entities

7
推荐指数
1
解决办法
508
查看次数

标签 统计

html ×1

html-entities ×1

php ×1

sanitization ×1