我获取$_POST信息并将其存储在数据库中,稍后查询并将此信息打印给用户。我应该在插入此信息之前使用htmlspecialchars()还是在查询它之后再输出它?此外,我需要让用户能够使用引号和其他日常特殊字符。我知道我可以使用标志ENT_NOQUOTES但感觉如果我这样做会留下安全漏洞。我的网站允许使用Bbcode,我希望用户能够使用日常字符而不必看到“amp;lt;&”。耐心等待我 最佳答案 ShouldIusehtmlspecialchars()beforeinsertingthisinfoorafterIqueryitbef
我想知道我应该以哪种方式执行以下操作。我正在使用微型MCE所见即所得编辑器,它使用正确的html标签格式化用户数据。现在,我需要将输入编辑器的数据保存到数据库表中。当插入数据库时,我是否应该将html标签编码为它们相应的实体,然后当我从表中取回数据时,没有针对XSS目的进行编码,但我仍然必须对html使用eval标签来格式化文本。或我是否将html标签保存到数据库中,然后当我从数据库中取回数据时,将html标签编码到它们的实体中,但是随着标签将出现在用户面前,我必须使用eval函数在输入时实际格式化数据。我的想法是第一个选项,我只是想知道你们的想法。 最
$address和$cityState是用户提供的,存储在数据库中,可供其他人查看,如下所示。有没有风险XSS?htmlspecialchars()也应该用在上面吗?&zoom=14&size=400x400&sensor=false"alt="Map"/> 最佳答案 是的,还应该使用htmlspecialchars-您首先将URL编码为URL安全的,然后将其构建到HTML属性中,该属性“需要”HTML-风格转义。在使用这两种编码后,不再可能在您的秤端注入(inject)任意代码,因此如果仍有任何风险,他们将
我必须处理以前的开发人员留下的旧网络应用程序。它使用addslashes()来防止HTML属性上的XSS。这是一个例子:";?>这是否容易受到XSS攻击?javascript是否可以像在src属性中那样在value属性中运行,例如src='javascript:alert(99)'。还是可以打破value属性,然后插入script标签?编辑:感谢Quentin,我相信它很脆弱。 最佳答案 Isaddslashes()safetopreventXSSinaHTMLattribute?这是非常无效的。Isthisvulnerableto
注意:我使用的是ZendFramework,但我认为其中大部分适用于一般的PHP编码。我正在尝试选择一种编写View脚本的策略,可能是在模板引擎的帮助下。动机:清晰和安全。我只是不喜欢编写.phtml脚本。这种语法对于做最经常需要的事情来说非常冗长——输出一个变量:escape($this->myVariable);?>除了代码冗长之外,恕我直言,模板作者不应该在每次他/她想要输出变量时都记住(和打扰)编写转义调用。忘记调用几乎肯定会导致XSS漏洞。对于这个问题我有两种可能的解决方案:方案一:自动转义的模板引擎我认为至少Smarty有一个选项可以在输出变量时自动转义html实体。有po
Pikachu靶场之XSS漏洞详解前言XSS漏洞简述第1关反射型xss(get)第2关反射性xss(post)第3关存储型xss第4关DOM型xss第5关DOM型xss-x第6关xss盲打第7关xss之过滤第8关xss之htmlspecialchars第9关xss之href输出第10关xss之js输出前言本篇文章用于巩固对自己xss漏洞的学习总结,其中部分内容借鉴了以下博客。链接:pikachuXSSCross-SiteScripting皮卡丘漏洞平台通关系列链接:Pikachu靶场:DOM型XSS以及DOM型XSS-XXSS漏洞简述攻击原理跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Sc
我有一个面向公众的调试脚本,我只想在某些开发箱上运行,我希望通过检测服务器ip或名称在该脚本中以编程方式执行此操作-所以我对$_SERVER和$_SERVER['HTTP_HOST']的安全性有疑问。来自:http://shiflett.org/blog/2006/mar/server-name-versus-http-host博客文章我收集到这个var非常不安全,并且不可信。从php中找出您当前所在的框的最佳方法是什么?我想过使用FILE,因为这似乎很安全,但我不确定我是否从文件路径中获得了足够的信息。我不一定需要服务器名称,即使是ip也可以。提前致谢。
长话短说CodeIgniters的Security类直接操作您的全局变量,例如$_POST,它发现file()和file()是一个威胁,因此它对其进行HTML编码。//config.phpfrommyappsfolderistheculprit$config['global_xss_filtering']=TRUE;自己动手(少数人,勇敢者)在CodeIgniter2.1.4中,转到system/core/security.php和行#430-442:/**Sanitizenaughtyscriptingelements**Similartoabove,onlyinsteadofloo
假设我们在表单中使用了CSRFtoken,但碰巧我们的网站上存在一个未被注意到的XSS漏洞。据我所知,CSRFtoken保护在这种情况下完全无效,因为攻击者可以通过XSS使用XMLHttpRequest检索它。在这种情况下,有没有一种方法可以让CSRF保护在攻击中幸存下来,或者我们的网站是否应该在执行任何CSRF之王之前首先拥有安全的反XSS保护?在每次页面请求时设置一个新token而不是在登录时设置token是否可以解决这个问题?这带来了一次打开更多表单的问题,我不喜欢它。 最佳答案 您的站点应该关闭您发现的所有XSS漏洞,否则C
这对XSS是100%安全的吗?如果不是,能否请您提供错误字符串文本示例,告诉我为什么不是。Thanks. 最佳答案 简而言之,它是安全的。可能的XSS需要从javascript字符串(")或脚本()中转义。两个字符串都被正确转义:"becomes\"becomes这是关于直接注入(inject)的部分。您的应用程序应考虑到某些数组元素可能会丢失。另一种可能性是数组元素不是您期望的类型(例如,数组而不是字符串) 关于php-跨站脚本:Creatingajavascriptobjectusi