如何为textarea添加安全性,以便用户可以输入的唯一内容(除了普通文本)是一个新行。
示例:
<textarea>
For some reason
I want this on 2 lines
</textarea>
不应允许任何其他类型的标签。我已经使用像htmlentities,strip_tags,nl2br等php安全功能进行了很多测试,我没有发现任何可以做我想要的东西。有什么想法吗?
更新:我没有任何关于htmlentities如何对我不起作用的例子,因为那是来自过去的经验,但如果有人可以提供一个如何使用htmlentities来做这个的例子,那将是非常理解!
答案 0 :(得分:1)
您需要做的是定义允许值的白名单,其中包括上下字母字符,行返回以及您想要允许的任何其他内容(标点符号,数字等)正则表达式很容易执行此操作使用,您需要在提交时验证文本区域的内容。
另外,请确保始终在服务器端运行此操作。您也可以在客户端中运行,但是您必须确保无法在浏览器中规避该机制,因此服务器验证依赖性。
答案 1 :(得分:0)
这就是你要对“非法”角色做些什么。如果您只想剪切它们,您可能会发现有用的正则表达式。如果您想要转义它们,只需使用htmlspecialchars()
或htmlentities()
。
答案 2 :(得分:0)
之后你只能用php检查输入,因为php在服务器上运行而不是在客户端运行。如果你想立即检查它,你可以使用javascript,但它会减慢用户的输入。
请相信用户并在之后过滤它,这将是我的建议。
HTH