当我输入文本时我有一个问题我可以用文本输入html。例如“我正在输入文本”。现在,此链接在提交表单时显示为链接。关于如何防止这种情况的任何想法?
I am entering text <a href="xyz.com">Go to my site </a>. This is the input so when i output the data it comes out as I am entering text **Go to my site** with the hyperlink.
答案 0 :(得分:6)
将字符串放在htmlspecialchars()
或strip_tags()
。
而且,由于我觉得为其他目的清理字符串将是下一个问题,我应该提出这个:The ultimate clean/secure function
答案 1 :(得分:2)
您无法轻易阻止用户在没有javascript的情况下输入代码,但您可以使用
strip_tags()
在后端删除它们。
htmlspecialchars()
不会删除这些标记,它只会对特殊字符进行编码。
答案 2 :(得分:0)
通常,您不希望阻止这一点。您希望确保在打印时不输出HTML 。
这样做的方式是这样的:
echo $_GET['text']; // this prints HTML links etc
echo htmlspecialchars($_GET['text']); // this does not
答案 3 :(得分:0)
如果我理解正确,您希望阻止注入HTML代码。使用htmlspecialchars()
。
echo htmlspecialchars($_POST['myform']);
答案 4 :(得分:0)
在显示之前清理输入数据。众所周知,这是一种Cross Site Scripting(XSS)攻击。
您可以使用htmlspecialchars()
或string_tags()
来清理数据。