标签: owasp

什么是"X-Content-Type-Options = nosniff"?

我正在使用OWASP ZAP对我的localhost进行一些渗透测试,并且它会不断报告此消息:

Anti-MIME-Sniffing标头X-Content-Type-Options未设置为'nosniff'

此检查特定于Internet Explorer 8和Google Chrome.如果Content-Type标头未知,请确保每个页面设置Content-Type标头和X-CONTENT-TYPE-OPTIONS

我不知道这意味着什么,我在网上找不到任何东西.我试过添加:

<meta content="text/html; charset=UTF-8; X-Content-Type-Options=nosniff" http-equiv="Content-Type" />
Run Code Online (Sandbox Code Playgroud)

但我仍然得到警报.

设置参数的正确方法是什么?

html meta owasp http-headers penetration-testing

256
推荐指数
5
解决办法
29万
查看次数

为什么在CSR中放置CSRF预防令牌很常见?

我试图了解CSRF的整个问题以及预防它的适当方法.(资源我已阅读,理解并同意:OWASP CSRF预防报告表,关于CSRF的问题.)

据我了解,CSRF的漏洞是通过假设(从网络服务器的角度来看)传入HTTP请求中的有效会话cookie反映经过身份验证的用户的意愿而引入的.但是,原始域的所有cookie都被浏览器神奇地附加到请求上,因此实际上所有服务器都可以通过请求中存在的有效会话cookie来推断该请求来自具有经过身份验证的会话的浏览器; 它无法进一步假设该浏览器中运行的代码,或者它是否真正反映了用户的意愿.防止这种情况的方法是在请求中包含其他身份验证信息("CSRF令牌"),这些信息由浏览器的自动cookie处理以外的某些方式携带.然后,松散地说,会话cookie验证用户/浏览器,并且CSRF令牌验证在浏览器中运行的代码.

简而言之,如果您使用会话cookie来验证Web应用程序的用户,您还应该为每个响应添加一个CSRF令牌,并在每个(变异)请求中要求匹配的CSRF令牌.然后,CSRF令牌从服务器到浏览器进行往返回服务器,向服务器证明发出请求的页面是由该服务器批准(甚至由该服务器生成).

关于我的问题,这是关于在该往返中用于该CSRF令牌的特定传输方法.

看起来很常见(例如在AngularJS,Django,Rails中)将CSRF令牌从服务器发送到客户端作为cookie(即在Set-Cookie头中),然后让客户端中的Javascript将其从cookie中删除并附加它作为单独的XSRF-TOKEN标头发送回服务器.

(另一种方法是由例如Express推荐的方法,其中由服务器生成的CSRF令牌通过服务器端模板扩展包含在响应主体中,直接附加到将其提供回服务器的代码/标记,例如作为一个隐藏的表单输入.这个例子是一个更多的Web 1.0-doh的做事方式,但是可以很好地推广给更多JS的客户端.)

为什么使用Set-Cookie作为CSRF令牌的下游传输是如此常见/为什么这是一个好主意?我想所有这些框架的作者都仔细考虑了他们的选择,并没有弄错.但乍一看,使用cookie解决基本上对cookie的设计限制似乎很愚蠢.实际上,如果您使用cookie作为往返传输(Set-Cookie:服务器的下游标头告诉浏览器CSRF令牌,而Cookie:上游标题,浏览器将其返回给服务器)您将重新引入漏洞正试图解决.

我意识到上面的框架不会使用cookie来进行CSRF令牌的整个往返; 他们使用Set-Cookie下游,然后在上游使用其他东西(例如X-CSRF-Token标头),这确实可以关闭漏洞.但即使使用Set-Cookie作为下游传输也可能具有误导性和危险性; 浏览器现在将CSRF令牌附加到每个请求,包括真正的恶意XSRF请求; 充其量只会使请求变得比它需要的更大,而在最坏的情况下,一些善意但误导的服务器代码实际上可能会尝试使用它,这将是非常糟糕的.此外,由于CSRF令牌的实际预期接收者是客户端Javascript,这意味着此cookie不能仅使用http保护.因此,在Set-Cookie标头中向下游发送CSRF令牌对我来说似乎非常不理想.

security cookies csrf owasp web

248
推荐指数
3
解决办法
10万
查看次数

PHP $ _SERVER ['HTTP_HOST']与$ _SERVER ['SERVER_NAME'],我是否正确理解了手册页?

我做了很多搜索,还阅读了PHP $ _SERVER文档.对于在我的网站中使用的简单链接定义,我的PHP脚本使用哪个权限?

$_SERVER['SERVER_NAME'] 是基于您的Web服务器的配置文件(在我的情况下是Apache2),并根据一些指令而变化:(1)VirtualHost,(2)ServerName,(3)UseCanonicalName等.

$_SERVER['HTTP_HOST'] 基于客户的要求.

因此,在我看来,为了使我的脚本尽可能兼容而使用的正确方法是$_SERVER['HTTP_HOST'].这个假设是否正确?

后续评论:

我想在读完这篇文章之后我有点偏执,并注意到有些人说"他们不会相信任何一个$_SERVER变种":

显然,讨论主要是关于$_SERVER['PHP_SELF']为什么你不应该在表单action属性中使用它而没有适当的转义以防止XSS攻击.

我对上述原始问题的结论是$_SERVER['HTTP_HOST'],即使在表单中使用,也可以"安全"地使用网站上的所有链接,而不必担心XSS攻击.

如果我错了,请纠正我.

php apache security owasp

153
推荐指数
6
解决办法
37万
查看次数

本地存储可以被认为是安全的吗?

我需要开发一个可以长时间离线运行的Web应用程序.为了使其可行,我无法避免在本地存储中保存敏感数据(个人数据,而不是您只存储散列的数据类型).

我接受这不是推荐的做法,但是我没有做多少选择来保护数据:

  • 使用stanford javascript加密库和AES-256将所有内容整合到本地存储中
  • 用户密码是加密密钥,不存储在设备上
  • 通过ssl从单个受信任服务器提供所有内容(在线时)
  • 使用owasp antisamy项目验证进出服务器上本地存储的所有数据
  • 在appcache的网络部分中,不使用*,而是仅列出与受信任服务器连接所需的URI
  • 通常尝试应用OWASP XSS备忘单中建议的指南

我很欣赏魔鬼经常处于细节之中,并且知道对于本地存储和基于javascript的安全性存在很多怀疑.任何人都可以评论是否有:

  • 上述方法的根本缺陷是什么?
  • 这些缺陷的任何可能的解决方案?
  • 当html 5应用程序必须长时间离线运行时,是否有更好的方法来保护本地存储?

谢谢你的帮助.

security html5 owasp local-storage html5-appcache

147
推荐指数
3
解决办法
9万
查看次数

JSF中的CSRF,XSS和SQL注入攻击防范

我有一个基于JSF的Web应用程序,MySQL作为DB.我已经实现了代码来防止我的应用程序中出现CSRF.

现在,由于我的底层框架是JSF,我想我不必处理XSS攻击,因为它已经被处理了UIComponent.我没有在任何视图页面中使用任何JavaScript.即使我使用,我真的需要实现代码来防止XSS攻击?

对于DB,我们在所有数据库交互中使用预准备语句和存储过程.

是否还需要处理其他任何事情以防止这3种常见攻击?我已经通过了OWASP网站和他们的备忘单.

我是否需要处理任何其他潜在的攻击媒介?

xss jsf sql-injection csrf owasp

54
推荐指数
2
解决办法
4万
查看次数

PHPF中的CSRF(跨站点请求伪造)攻击示例和预防

我有一个网站,人们可以这样投票:

http://mysite.com/vote/25
Run Code Online (Sandbox Code Playgroud)

这将对项目25进行投票.我想只为注册用户提供此选项,并且只有在他们想要这样做时才可以.现在我知道有人在网站上忙碌,有人给他们这样的链接:

http://mysite.com/vote/30
Run Code Online (Sandbox Code Playgroud)

然后投票将是他在项目上的位置,而他不想这样做.

我已经阅读了OWASP网站上解释,但我真的不明白

这是CSRF的一个例子,我该如何防止这种情况发生.我能想到的最好的事情就是像哈希一样在链接中添加一些内容.但是,在所有链接的末尾添加一些内容会非常恼人.没有其他方法可以做到这一点.

另一件事可能有人可能会给我一些其他的例子,因为该网站对我来说似乎是相当的神话.

php csrf owasp

50
推荐指数
3
解决办法
8万
查看次数

playframework owasp前10名

我正在考虑将Play用于一个大型项目,那么,是否有任何经过实战考验的Play框架适用于OWASP Top 10?您在Play框架中是否存在任何安全问题?

java security scala owasp playframework

30
推荐指数
2
解决办法
3148
查看次数

在ZAP工具中添加身份验证以攻击URL

如何将身份验证详细信息传递给ZAP工具以扫描网站.请帮我解决问题.

authentication owasp zap

24
推荐指数
2
解决办法
4万
查看次数

在php中检测浏览器,版本和平台的可靠方法

我一直在寻找一种可靠的方式(至少不那么模糊):

  1. 浏览器的名称
  2. 版本
  3. 以及它所在的平台(OS)
  4. 也许更多的信息,但上面的3个信息就足够了.

我想根据这些信息显示自定义内容,例如:

如果用户想知道如何清除浏览器上的cookie.假设我有很多内容已经可用于许多浏览器.版本我想自动加载适当的内容

有没有办法不涉及Javascript来获取这些值?

我有用例没有找到或不准确的浏览器.所以我想拥有最可靠的解决方案.

这里有2个网站完全符合我的需要:

  1. www.whatismybrowser.com(联系店主知道如何用PHP做到这一点)
  2. HawkBrowser真的是详尽的测试,而不是免费的

部分解决方案的其他链接:

  1. 使用2012年8月的旧浏览器cap升级mybrowser.org(来源)
  2. 谷歌的www.whatbrowser.org

花了很多天尝试,搜索,但没有成功.我从Stackoverflow社区发现了许多提示:

  1. 使用get_browser()的browsercap.该项目已经停止(目前为2012年8月8日),并没有发现一些现代流行的手持设备.
  2. Javascript检测功能方法:Modernirz.对于我想要做的事情来说,不是很好的方法,需要经常更新.
  3. jQuery.browser不够好可能性不够.
  4. quirksmode.org javascript并且暂时不准确使用移动版本,并且更喜欢PHP版本.

其他有用的链接:

  1. Stakoverflow答案1
  2. Stackoverflow答案2
  3. PHP移动检测
  4. PIWIK分析报告

编辑1 到目前为止,我已经测试了答案和评论.这些解决方案非常令人满意:

  • PHP移动检测最后一个版本确实很好,如果你使用它,最好给客户端提供示例中的表单,以便他们可以为项目做出贡献.(感谢@Pekka)
  • WURFL不是最近但非常好.(感谢@Ian Roberts)

    编辑2 PHP移动检测使用WURFL

UPDATE

确保您收到的标题未被任何其他库修改.

例如,某些安全库(如OWASP PhpSec [ABANDONED])将标头结构更改为自定义对象, PHP移动检测无法访问所需的所有信息

对于那些使用OWASP PhpSec [ABANDONED]的人来说,http库正在修改全局头对象结构.(2013年12月)因此,如果您遇到问题,请在使用http库包含任何OWASP PhpSec类之前使用PHP移动检测

javascript php browser owasp

21
推荐指数
1
解决办法
5810
查看次数

什么是x-Application-Context标头?

这个响应头(x-Application-Context)代表什么?它是否特定于Spring框架?

下面的标题是什么意思?

X-Application-Context   airtel-project-service:aws:27094
Run Code Online (Sandbox Code Playgroud)

它是否会显示主机名或端口号等敏感信息?

security owasp web spring-boot

18
推荐指数
1
解决办法
1万
查看次数