Dan*_*iel 11 php forms security http-post
我有一个带有文本框的表单,该文本框将数据发布到使用"htmlentities"功能的php文件,以便通过电子邮件发送给网站所有者.
问题是有人设法在文本中获得超链接,而htmlentities()不会删除它.
这是我的文本框html:
<input name="usertext" type="text" />
Run Code Online (Sandbox Code Playgroud)
这是接收后的数据(我离开了电子邮件的代码,因为这是没问题的.我改变它只是呼应了接收到的数据,所以我可以尝试复制黑客做了什么.如果我知道他是如何做到的我的PHP代码,我可以找到阻止它发生的方法):
echo trim(htmlentities($_POST["usertext"], ENT_QUOTES));
Run Code Online (Sandbox Code Playgroud)
现在黑客发送了一些数据,这就是结果html(源代码 - 这意味着它在浏览器中显示了一个正常的链接):
<a target="_blank" href="mailto:nyjfvw@fbjgzy.com">nyjfvw@fbjgzy.com</a>
Run Code Online (Sandbox Code Playgroud)
我认为htmlentities()总能阻止任何人输入任何类型的HTML.如果我输入一个超链接,例如:
<a href="aaa" />
Run Code Online (Sandbox Code Playgroud)
我明白了:
<a href="aaa" />
Run Code Online (Sandbox Code Playgroud)
但是黑客的文本并没有这样编码.
所以我的问题是:
我做了一些研究,黑客可能会用utf-7或其他东西编码他的文本?
我已收到几封带有相同链接的电子邮件.这个黑客显然正在测试我的网站,看看他是否可以做XSS或其他什么.