防止数据属性中的Javascript注入

时间:2015-06-03 07:23:06

标签: javascript php xss code-injection

我有一个脚本从API中提取文本并将其设置为我的html中的工具提示。

var list = objLibraryRef.GetFileLists1();

API允许在该字段的一侧输入html和javascript。

我试过这个website.Class1

我现在有一个用户输入以下内容(或类似,他现在被阻止我无法再次检查):

<div class="item ttip" data-html="<?php echo $obj->titleTag;?>">...</div>

不会被以上所抓住。 我可以$obj->titleTag = htmlentities(strip_tags_content($this->channel->status))); window.location东西,但这看起来很脏。 什么是正确的方法?我正在阅读很多“白名单”,但我不理解这种情况的概念。

// EDIT strip_tags_content来自:https://php.net/strip_tags#86964

1 个答案:

答案 0 :(得分:0)

嗯,这不是你现在要替换的标签,而是标签内的代码。您需要在代码中允许某些属性而不是剥离标记,因为您只有一个标记;)

你要做的是检查JS中绑定的任何处理程序,full list here,然后删除它们,如果包含onerror左右的任何内容