标签: security

如何将所有HTTP请求重定向到HTTPS

我正在尝试将我站点上的所有不安全HTTP请求重定向http://www.example.com到HTTPS(https://www.example.com).我正在使用PHP顺便说一句.我可以在.htaccess中执行此操作吗?

security .htaccess https redirect http

282
推荐指数
10
解决办法
56万
查看次数

GET或POST比另一个更安全吗?

将HTTP GET与HTTP POST进行比较时,从安全角度来看有何不同?其中一个选择本身比另一个更安全吗?如果是这样,为什么?

我意识到POST不会暴露关于URL的信息,但是它是否有任何实际价值,还是仅通过默默无闻的安全性?当担心安全问题时,我是否应该更喜欢POST?

编辑:
通过HTTPS,POST数据被编码,但是第三方可以嗅探URL吗?另外,我正在处理JSP; 在使用JSP或类似框架时,最好的做法是避免将敏感数据放在POST或GET中并使用服务器端代码处理敏感信息吗?

html security http

281
推荐指数
11
解决办法
15万
查看次数

可利用的PHP功能

我正在尝试构建一个可用于任意代码执行的函数列表.目的不是列出应列入黑名单或以其他方式禁止的功能.相反,我希望在搜索受感染的后台服务器时,有一个grep可用的红旗关键字列表.

这个想法是,如果你想构建一个多用途的恶意PHP脚本 - 比如像c99或r57这样的"web shell"脚本 - 你将不得不使用一组或多组相对较小的函数文件中的某个位置,以便允许用户执行任意代码.搜索这些功能可以帮助您更快地将数万个PHP文件的大海捞变到相对较小的脚本集中,这些脚本需要仔细检查.

显然,例如,以下任何一种都会被视为恶意(或可怕的编码):

<? eval($_GET['cmd']); ?>

<? system($_GET['cmd']); ?>

<? preg_replace('/.*/e',$_POST['code']); ?>
Run Code Online (Sandbox Code Playgroud)

等等.

前几天通过一个被入侵的网站进行搜索,我没有注意到一段恶意代码,因为我没有意识到preg_replace使用该/e标志可能会造成危险(严重的是,为什么即使那样?).还有其他我错过的吗?

到目前为止,这是我的清单:

Shell执行

  • system
  • exec
  • popen
  • backtick operator
  • pcntl_exec

PHP执行

  • eval
  • preg_replace(带/e修饰符)
  • create_function
  • include[ _once]/require[ _once](有关漏洞利用详情,请参阅mario的回答)

拥有一个能够修改文件的函数列表可能也很有用,但我想99%的时间漏洞利用代码至少包含一个上述函数.但是如果你有一个能够编辑或输出文件的所有功能的列表,请发布它,我会在这里包含它.(而且我不算数mysql_execute,因为那是另一类漏洞利用的一部分.)

php security grep

277
推荐指数
15
解决办法
12万
查看次数

IIS/ASP.NET的所有用户帐户是什么?它们有何不同?

在安装了ASP.NET 4.0的Windows Server 2008下,有大量相关的用户帐户,我无法理解哪一个是哪个,它们如何区别,哪一个真的是我的应用运行的那个.这是一个清单:

  • IIS_IUSRS
  • IUSR
  • 默认应用
  • ASP.NET v4.0
  • NETWORK_SERVICE
  • 本地服务.

什么是什么?

asp.net security iis user-accounts

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

付款处理程序 - 如果我想在我的网站上接受信用卡,我需要知道什么?

这个问题讨论了不同的支付处理器及其成本,但我正在寻找如果我想接受信用卡支付需要做什么的答案?

假设我需要为客户存储信用卡号码,因此无法获得依赖信用卡处理器进行繁重工作的明显解决方案.

PCI Data Security显然是存储信用卡信息的标准,它有许多一般要求,但是如何实现它们呢?

那些拥有自己最佳实践的像Visa这样的供应商呢?

我是否需要使用密钥卡访问机器?如何在物理上保护它免受建筑物中的黑客攻击?或者甚至如果有人拿着sql server数据文件的备份文件呢?

备份怎么样?是否有其他物理副本的数据?

提示:如果您获得商家帐户,则应协商他们向您收取"交换加"而不是分层定价. 通过分层定价,他们将根据使用的Visa/MC类型向您收取不同的费率 - 即.他们会向你收取额外费用大额奖励的卡.Interchange plus billing意味着您只需向处理器支付Visa/MC收取的费用,外加固定费用.(Amex和Discover直接向商家收取费用,因此不适用于这些卡.您会发现Amex费率在3%范围内且Discover可能低至1%.Visa/MC在2%的范围). 这项服务应该为你做谈判(我没有使用它,这不是广告,我不隶属于网站,

这篇博文给出了处理信用卡完整概要(特别是针对英国).


也许我说错了这个问题,但我正在寻找这样的提示:

  1. 使用SecurIDeToken将其他密码图层添加到物理框中.
  2. 确保盒子位于具有物理锁或键码组合的房间中.

security pci-dss e-commerce

257
推荐指数
6
解决办法
2万
查看次数

如果你能解码JWT它们如何安全?

我爱JWT.合作真的很有趣.我的问题是:如果我得到JWT并且我可以解码有效载荷,那么它是如何安全的?我不能只是从标题中获取令牌,解码并更改有效负载中的用户信息,并使用相同的正确编码密码将其发回?

我知道他们必须是安全的,但我真的很想了解这些技术.我错过了什么?谢谢!

security jwt express-jwt

252
推荐指数
6
解决办法
8万
查看次数

使用端口80运行Node.js时的最佳做法(Ubuntu/Linode)

我正在设置我的第一台Node.js服务器cloud Linux node,我对细节很新Linux admin.(顺便说一句,我不是在尝试同时使用Apache.)

一切都安装正确,但我发现,除非我使用root login,我无法听port 80节点.但是出于安全原因,我宁愿不以root身份运行它.

什么是最佳做法:

  1. 为节点设置好的权限/用户以使其安全/沙盒化?
  2. 允许在这些约束内使用端口80.
  3. 启动节点并自动运行它.
  4. 处理发送到控制台的日志信息.
  5. 任何其他一般维护和安全问题.

我应该将端口80流量转发到不同的侦听端口吗?

谢谢

linux security configuration web-applications node.js

250
推荐指数
4
解决办法
14万
查看次数

为什么在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万
查看次数

"让我登录" - 最好的方法

我的Web应用程序使用会话在用户登录后存储有关用户的信息,并在应用程序中从一个页面移动到另一个页面时维护该信息.在这个特定的应用程序,我存储user_id,first_namelast_name人的.

我想在登录时提供"Keep Me Logged In"选项,这将在用户的计算机上放置一个cookie两周,这将在他们返回应用程序时以相同的细节重新启动他们的会话.

这样做的最佳方法是什么?我不想将它们存储user_id在cookie中,因为看起来这样可以让一个用户轻松尝试伪造另一个用户的身份.

php security session remember-me

245
推荐指数
7
解决办法
14万
查看次数

Web浏览器是否会通过https缓存内容

通过https请求的内容是否仍会被Web浏览器缓存,或者他们是否认为这种不安全的行为?如果是这种情况,无论如何都要告诉他们可以缓存吗?

security https

244
推荐指数
2
解决办法
9万
查看次数