相关疑难解决方法(0)

为什么Google会在(1)之前提前; 他们的JSON回复?

为什么Google会while(1);在其(私人)JSON响应前加上?

例如,这是在Google日历中打开和关闭日历时的响应:

while(1);[['u',[['smsSentFlag','false'],['hideInvitations','false'],
  ['remindOnRespondedEventsOnly','true'],
  ['hideInvitations_remindOnRespondedEventsOnly','false_true'],
  ['Calendar ID stripped for privacy','false'],['smsVerifiedFlag','true']]]]
Run Code Online (Sandbox Code Playgroud)

我认为这是为了防止人们eval()对它进行操作,但你真正需要做的就是更换while然后你就可以了.我认为eval预防是为了确保人们编写安全的JSON解析代码.

我已经在其他几个地方看到了这种情况,但谷歌(邮件,日历,通讯录等)的情况更是如此.奇怪的是,谷歌文档开始了&&&START&&&,谷歌联系人似乎开始while(1); &&&START&&&.

这里发生了什么?

javascript security ajax json

3940
推荐指数
7
解决办法
51万
查看次数

什么是CSRF令牌?它的重要性是什么?它是如何工作的?

好吧,伙计们,我正在编写一个Django应用程序,我只是想知道实际上csrf令牌是什么以及它如何保护数据.如果不使用csrf令牌,帖子数据是不安全的?

我知道如何使用csrf_token但我只需要一些信息它是如何工作的.

csrf

572
推荐指数
5
解决办法
36万
查看次数

X-Requested-With标头有什么意义?

JQuery和其他框架添加以下标头:

X-Requested-With:XMLHttpRequest

为什么需要这个?为什么服务器要以不同于正常请求的方式处理AJAX请求?

更新:我刚刚使用这个标题找到了一个真实的例子:https://core.spreedly.com/manual/payment-methods/adding-with-js.如果在没有AJAX的情况下请求支付处理器,它会在完成后重定向回原始网站.当使用AJAX请求时,不会进行重定向.

ajax jquery http-headers cors

197
推荐指数
3
解决办法
16万
查看次数

ActionController的:: InvalidAuthenticityToken

下面是一个错误,由我的Rails应用程序中的表单引起:

Processing UsersController#update (for **ip** at 2010-07-29 10:52:27) [PUT]
  Parameters: {"commit"=>"Update", "action"=>"update", "_method"=>"put", "authenticity_token"=>"ysiDvO5s7qhJQrnlSR2+f8jF1gxdB7T9I2ydxpRlSSk=", **more parameters**}

ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):
Run Code Online (Sandbox Code Playgroud)

对于每个非get请求都会发生这种情况,正如您所看到的那样authenticity_token.

ruby-on-rails

129
推荐指数
10
解决办法
19万
查看次数

Rails:csrf_meta_tag如何工作?

我是一名PHP开发人员,通过阅读Michael Hartl的教程来学习Ruby on Rails .以下是本书的引用,指的是csrf_meta_tag:

... Rails方法csrf_meta_tag[防止]跨站点请求伪造(CSRF),一种恶意Web攻击.不要担心细节(我没有); 只知道Rails正在努力保证您的应用程序的安全.

问题是,我真的很好奇.插入csrf-paramcsrf-token元标记如何阻止CSRF?我试过谷歌搜索,但找不到任何东西.

ruby-on-rails csrf

62
推荐指数
3
解决办法
5万
查看次数

为什么需要同源策略的简单示例

我已经读到了Same Origin Policy,但是为了更好地理解这个问题:有人可以写一个简单的代码(用任何语言)来演示SOP停止的攻击吗?

在SOP出现之前怎么可能攻击某人?

security same-origin-policy web

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

X-Requested-With标头服务器检查是否足以防止ajax驱动的应用程序的CSRF?

我正在开发一个完全由ajax驱动的应用程序,其中所有请求都通过基本上相当于一个主控制器,在它的骨头上看起来像这样:

if(strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    fetch($page);
}
Run Code Online (Sandbox Code Playgroud)

这通常足以防止跨站点请求伪造吗?

当每个请求没有刷新整个页面时,拥有一个旋转令牌是相当不方便的.

我想我可以传递和更新唯一令牌作为一个全局javascript变量与每个请求 - 但不知何故感觉笨拙,似乎本质上不安全.

编辑 - 也许静态令牌,如用户的UUID,会比什么都好?

编辑#2 - 正如鲁克所指出的,这可能是一个令人头疼的问题.我已经阅读了两种方式的猜测,并听到有关旧版本的闪存可用于此类恶作剧的远程窃窃私语.由于我对此一无所知,所以我会向任何可以解释这是CSRF风险的人提供奖励.否则,我将它交给Artefacto.谢谢.

php security ajax csrf token

24
推荐指数
1
解决办法
5538
查看次数

鉴于会话密钥和秘密,我们如何解密Rails cookie?

我有一个关于Rails如何处理cookie加密/解密的问题.

我在config/environment.rb中有这个

  config.action_controller.session = {
    :session_key => [some key],
    :secret => [some secret]
  }
Run Code Online (Sandbox Code Playgroud)

这在config/environment/production.rb等人:

  ActionController::Base.session_options[:session_domain] = [some
domain]
Run Code Online (Sandbox Code Playgroud)

到目前为止,这么好 - 只要我的所有Rails应用程序具有相同的session_key和秘密,并且在同一个域中,它们都可以使用相同的cookie.

但是,一位同事现在有一个JSP应用程序(在同一个域上),他想用它来阅读我设置的cookie.

因此,给定一个秘密和加密的cookie值,我们如何解密它以获取该cookie的内容?

(文档似乎表明这是默认的单向SHA1加密 - http://caboo.se/doc/classes/CGI/Session/CookieStore.html - 但那么我的Rails应用程序将如何读取内容单向加密的cookie?)

提前感谢任何提示/指示/见解,

ruby encryption cookies session ruby-on-rails

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

会话从另一个角度劫持

我一直致力于一个安全的登录/门户类型工具集,一般代码没有SQL注入,XSS等,我有很多东西来阻止会话劫持.

  1. 为每个页面重新生成会话的ID
  2. 在登录时将用户的IP与IP进行比较
  3. 在登录时将用户的user_agent与代理进行比较
  4. 会议时间很短

等等

我已经做了所有我能想到的停止劫持的事情,但是我仍然找到了可能的情况,并且想知道是否有人有任何想法.

想象一下,在防火墙后面有2个用户执行SNAT/DNAT的情况,因此两者都来自同一个IP.它们都是由同一地方提供的相同机器.一个连接到站点并登录,另一个复制PHPSESSID cookie并且可以简单地窃取会话.

这可能听起来像一个极端的例子,但这与我的工作地点非常相似,每个人都在防火墙后面,所以看起来是相同的IP,所有机器都由IT团队管理/提供,所以所有都有相同的版本浏览器,操作系统等

我试图想到另一种方式(服务器端)停止劫持或进一步最小化它,我想到一个令牌嵌入到每个URL(为每个页面更改),并检查.

我正在寻找想法或建议,如果你想提供你喜欢的代码或例子,但我对我的令牌想法的开箱即用的想法或评论更感兴趣.

php security

10
推荐指数
1
解决办法
732
查看次数

Rails/Devise - 通过json请求创建新用户

我想通过JSON进行新的用户注册,但是我收到了无效的真实性令牌错误.

我想不要为所有控制器打开伪造检查.有关如何覆盖registrationcontroller的任何建议吗?

这是我的代码:

class Api::MobileRegistrationsController  < Devise::RegistrationsController 
  skip_before_filter :verify_authenticity_token
  respond_to :json
  def create
    super
  end
end
Run Code Online (Sandbox Code Playgroud)

路线:

Whitney::Application.routes.draw do
  resources :apps
  devise_for :users
  namespace :api do
    resources :tokens, :only => [:create, :destroy]
    resources :MobileRegistrations, :only => [:create] 
  end
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

Routing Error
uninitialized constant Api::MobileRegistrationsController
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails devise

10
推荐指数
1
解决办法
7049
查看次数