2013-01-15 28 views
-4

我存储形式以及形式处理脚本,JavaScript验证脚本,并在数据库形式CSS,我使用eval()为PHP代码,所以我的问题是这样做我需要去htmlspecialchars()htmlentities()我是否需要消毒的代码,如果正在使用eval()

使用mysqli_real_escape_string()nl2br()反正我和雅不提醒我有关如何使用eval()安全或evalevil等等等等,那不是关心这里的事情是,如果我不使用htmlspecialcharshtmlentities的HTML会因为它已被张贴在数据库中,如<将是<而不是&lt;所以我需要使用这些功能,或者在这种情况下它们并不是真正需要的吗?

+0

如果你不使用其中的一个有很大的XSS漏洞。那么,实际上已经有一个名为“eval”的安全漏洞。 – Leri

+0

@PLB只有系统管理员将访问代码,所以没有XSS的问题,看我的问题,我说不要提醒我有关的安全性,用户输入不会被执行,只有系统管理员将明显这样做 –

+0

你不关心编写健壮的代码,那么为什么你不试一试,看看有什么作用?如果它不起作用,那么你会得到一个错误。继续尝试,直到它工作,你会得到你的答案。 –

回答

0

通用答案:在上下文有变化时使用转义函数。

把一个纯文本字符串转换成SQL时:逃命SQL。

将纯文本字符串放入HTML时:Escape for HTML。

把一个纯文本字符串转换为URL时:逃避URL。

在做以上的超过一两件事:做正确的顺序都逃脱了,真的试图找出如果你没有错过情境改变。

演示问题:

开始

$param = "foo"; 
$url = "http://www.example.org/newpage"; 

<a href="javascript:location='http://www.example.org/newpage?param=foo';return false;">Link</a> 
相关问题