问题列表 - 第46458页

Rails CSRF保护如何运作?

InvalidAuthenticityToken当CSRF令牌不匹配时,Rails会引发一个.但是,从阅读来源,我无法弄清楚这是如何实际发生的.我首先为该类修饰树:

$ ack --ignore-dir=test InvalidAuthenticityToken

actionpack/lib/action_controller/metal/request_forgery_protection.rb
4:  class InvalidAuthenticityToken < ActionControllerError #:nodoc:
17:  # which will check the token and raise an ActionController::InvalidAuthenticityToken

actionpack/lib/action_dispatch/middleware/show_exceptions.rb
22:      'ActionController::InvalidAuthenticityToken' => :unprocessable_entity
Run Code Online (Sandbox Code Playgroud)

只有两次点击,忽略了评论.第一个是类定义:

class InvalidAuthenticityToken < ActionControllerError #:nodoc:
end
Run Code Online (Sandbox Code Playgroud)

第二个是将异常转换为HTTP状态代码.通过调用protect_from_forgery控制器来启用CSRF保护,让我们看一下:

def protect_from_forgery(options = {})
  self.request_forgery_protection_token ||= :authenticity_token
  before_filter :verify_authenticity_token, options
end
Run Code Online (Sandbox Code Playgroud)

它添加了一个过滤器:

def verify_authenticity_token
  verified_request? || handle_unverified_request
end
Run Code Online (Sandbox Code Playgroud)

验证失败时会调用此函数:

def handle_unverified_request
  reset_session
end
Run Code Online (Sandbox Code Playgroud)

那么InvalidAuthenticityToken实际上是如何提出的?

ruby ruby-on-rails ruby-on-rails-3

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

滚动时如何淡化到达顶部的表格视图的单元格内容?

大家好我需要实现这个功能.我需要淡化单元格的内容,而它会消失,我的意思是当它到达表格视图的顶部.我没有得到如何做到这一点.请帮助我.我试图使用scrollview的方法,但没有得到如何做到这一点.

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
Run Code Online (Sandbox Code Playgroud)

iphone uitableview

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

尽管JVM的进步,为什么Jython比CPython慢​​得多?

请不要发生火焰战争.我确实不是Java的粉丝,但我认为JVM是一个相当不错且优化得很好的虚拟机.它支持JIT,非常接近流行的CPU架构的共同点.我假设CPython运行时比相应的基于JVM的运行时更远离金属.

如果我的假设是正确的,那么有人可以向我解释为什么Jython与CPython相比会遭受如此重大的性能损失吗?我最初的假设是JVM只是为静态语言设计的,而且很难将动态语言移植到它上面.然而,Clojure似乎是这一论点的一个反例.

另一方面,IronPython似乎做得很好.我相信这两个项目的主要开发人员是相同的,所以一个代码设计和实现明显优于另一个的论点似乎不太可能.

我无法弄清楚具体原因是什么; 任何帮助将不胜感激.

python jvm jython

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

选择名称为数组字段的输入字段

我想根据条件选择文本字段,例如:

if only text field name = sname[] than only put value in it.
Run Code Online (Sandbox Code Playgroud)

为此我用过

<input type="text" name="sname[]" />

where name = sname;

//For each name type field in extra add contact module if that i visible.
    $('input[name=' + name + '[]]').each(function() { 

});
Run Code Online (Sandbox Code Playgroud)

但是我无法进入它.请建议如何进入选择.

jquery jquery-selectors

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

Scala匹配错误

我试图用匹配替换我的isInstanceOf检查,但它不起作用.

在我的方法中,我检查树节点 - 如果它是叶子 - 我想立即将它返回到Vector中,如果不是 - 我继续使用该方法.

所以最初我有:

    //code here
    if (common.isInstanceOf[LeafNode]) {
        return Vector(common.asInstanceOf[LeafNode].data)
    }
    //code here
Run Code Online (Sandbox Code Playgroud)

然后我试着用以下代替:

    //code here
     common match {
        case leaf: LeafNode => return Vector(leaf.data)
    }
    //code here
Run Code Online (Sandbox Code Playgroud)

但我得到了scala.MatchError.

scala

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

C4711"选择用于内联扩展的功能"Visual C++警告的用途是什么?

根据MSDN, Visual C++可以发出C4711警告:如果编译器决定内联一个未标记为内联的函数,则选择函数X进行内联扩展.

我不知道这个警告是如何有用的.假设我编译我的代码并看到此警告.怎么办?我为什么要关心?

c++ compiler-construction warnings inline visual-c++

9
推荐指数
1
解决办法
1494
查看次数

使用 FFMPEG 播放音频

我一直在尝试使用 NDK 将 FFMPEG(用于播放音频)移植到 Android 中。我取得了一些成功

  • 我可以构建 FFMPEG 并通过 NDK 链接它。
  • 我可以调用avcodec_decode_audio3()并解码给定的音频文件。

所以这里我有一个来自该函数的音频缓冲区输出。我现在该怎么玩这个?任何 ffmpeg 人员都可以告诉我解码和播放音频的确切步骤。我真的不知道如何处理我创建的音频缓冲区avcodec_decode_audio3()

多谢。

c android ffmpeg audio-streaming android-ndk

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

用于java安装的NSIS脚本

我想使用NSIS脚本安装Java,但我必须知道系统中是否安装了Java(Windows).根据注册码,我们如何检查是否安装了Java?

任何人都可以提供NSIS脚本来检查基于注册密钥的Java安装吗?

java install nsis

8
推荐指数
1
解决办法
5504
查看次数

上一个功能完成后调用一个函数

我有以下JavaScript代码:

$('a.button').click(function(){
    if (condition == 'true'){
        function1(someVariable);
        function2(someOtherVariable);
    }
    else {
        doThis(someVariable);
    }
});
Run Code Online (Sandbox Code Playgroud)

如何确保function2仅在function1完成后调用?

javascript jquery

165
推荐指数
6
解决办法
47万
查看次数

如何处理是没有在按钮点击时使用Javascript弹出的对话框

我在点击更新时有一个更新按钮我想提示用户,如果你想用Yes和No按钮分隔记录.如果用户点击是,我想执行可以分隔记录的代码,而不仅仅是更新记录.

我的示例代码

protected void btnUpdate1_Click(object sender, EventArgs e)
{
    EmpID = Convert.ToInt32(HiddenField1.Value);

    if (ID == 2)
    {
        oEmployeePersonalData.EmpID = EmpID;
        oEmployeePersonalData.PhoneNumberTypeID = ddlPhoneType.SelectedValue;
        oEmployeePersonalData.PhoneNumber = Convert.ToInt64(txtph1.Text);
        oEmployeePersonalData.EndDate = DateTime.Today.AddDays(-1);
Run Code Online (Sandbox Code Playgroud)

//根据我的要求,如果我点击是,我想执行此代码

        if (oEmployeePersonalData.PhoneDetailUpdate())
        {
        }
Run Code Online (Sandbox Code Playgroud)

//如果没有不同的代码

javascript c# asp.net jquery

0
推荐指数
1
解决办法
2438
查看次数