从用户创建的代码中删除php标记

时间:2016-12-07 13:00:29

标签: php html

我有一个网页,用户可以在线编辑,创建,存储,访问和调试他们的HTML代码。对于安全性问题,我已经使用沙盒iframe来显示用户内容,但我还有一件事 - 如果用户创建的代码包含一个php标签(我的服务器端语言是php),例如,进行SQL查询并读取/删除我的所有数据库或做任何其他有害的事情?

有可能吗?如果是的话 - 我怎样才能防御这种类型的攻击呢?我知道php有一个选项来剥离所有标签名称的标签,所以我可以剥离所有的php标签,但是再次 - 用户仍然可以不使用其他黑客,例如document.write()php标签或其他东西那样的?

提前谢谢

1 个答案:

答案 0 :(得分:0)

php标记(<?php ?>)不是HTML标记(<html><strong>等等)。所以那是不可能的。

另一方面,他们可以插入javascript(xss)。您可以转义输出或过滤输入。

要过滤输入,请参阅:http://php.net/strip_tags

您可以将要保留的标记作为参数传递:

strip_tags($input, '<br>');