处理输入区域中的Html标记

时间:2016-02-01 05:31:48

标签: javascript jquery html laravel-5

需要允许/禁止js方面的某些某些html标记。 开发一个laravel项目,在某些输入框中需要考虑某些html元素。

可以使用字符串替换功能完成,但需要更多时间来维护不允许的项目列表。如下所示

function escapeHtml(unsafe) {
    return unsafe
         .replace(/&/g, "&")
         .replace(/</g, "&lt;")
         .replace(/>/g, "&gt;")
         .replace(/"/g, "&quot;")
         .replace(/'/g, "&#039;");
 }

再次允许的html标签列表也可以很小,所以如果只是想允许
那么不安全的清单将是巨大的。

我也可以在服务器端进行,但无法获得任何适当的来源。

如果有人可以建议我维护这个允许/禁止html标记列表的最佳方法,那将会非常有用吗?

2 个答案:

答案 0 :(得分:1)

永远不要使用clientide JS来逃避任何事情。攻击者可以轻松阻止JS文件的执行并绕过它。

服务器端prepared statements是您想要的行业标准。

Prepared语句将用户输入视为不可执行的字符串,这些字符串对使用这些输入进行的任何查询都没有影响(即SQL注入)。

答案 1 :(得分:0)

所以最后我决定使用htmlpurifier

https://github.com/mewebstudio/purifier

因此,在服务器端,我们可以自定义哪个页面允许使用此

的标签