Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 清理稍后将在HTML中显示的输入_Javascript_Html_Sanitize - Fatal编程技术网

Javascript 清理稍后将在HTML中显示的输入

Javascript 清理稍后将在HTML中显示的输入,javascript,html,sanitize,Javascript,Html,Sanitize,我有一个,它的值被发送到服务器并存储在数据库中。该值随后在HTML的不同页面上呈现 我需要做什么来消毒这个?只是删除HTML标签?(它已经是SQL注入安全的,因为我使用的是存储过程和参数。) 有人有清理程序吗?要么完全删除标记,要么用HTML实体()替换任何特殊字符,如)。无论您使用的是哪种服务器端语言,都可能已经有了实现这一点的功能。例如,PHP的或将执行此操作。不要对输入进行消毒。而是在输出时对其进行编码。这很容易通过.NET4功能()或通过代码检查来实现 数据应以其本机格式存储。人类可读文

我有一个
,它的值被发送到服务器并存储在数据库中。该值随后在HTML的不同页面上呈现

我需要做什么来消毒这个?只是删除HTML标签?(它已经是SQL注入安全的,因为我使用的是存储过程和参数。)


有人有清理程序吗?

要么完全删除标记,要么用HTML实体(
)替换任何特殊字符,如
)。无论您使用的是哪种服务器端语言,都可能已经有了实现这一点的功能。例如,PHP的或将执行此操作。

不要对输入进行消毒。而是在输出时对其进行编码。这很容易通过.NET4功能()或通过代码检查来实现

数据应以其本机格式存储。人类可读文本的本机格式只有文本,而不是它的某些编码版本。您无法轻松地操作编码文本(例如突出显示单词或替换)

不在数据库中编码文本甚至可以节省一点存储空间


无论如何,消毒输入是困难的。除了对所有内容进行编码之外,很难做更多的事情。将HTML标记列入黑名单是忘记某些事情的一种特定方式,因此不要这样做。

通常,服务器端脚本的STL中有大量的净化剂。不要试图写你自己的!您使用的是什么语言?这取决于您在什么上下文中呈现它。如果在引号标记中呈现它,例如作为某个链接元素的“title”属性,则需要以与直接在主体中呈现不同的方式对其进行转义。你能澄清你在哪里渲染它吗?此外,正如Martin所说,您的框架将具有针对给定场景进行转义的功能。例如,.NET具有HtmlAttributeNCode等。小心使用strip_标记:在许多情况下,如果输入+1,您仍然可以注入javascript,因为我认为您刚刚建议询问者在存储到数据库之前不要对其数据进行HTML清理。这将节省存储空间,因为您存储了实际输入。当您输出它时,您会使它稍微大一点,以便在html中安全显示,如下所示: