Rails 3.1建议运行
rails generate session_migration
Run Code Online (Sandbox Code Playgroud)
但是,这会产生完全相同的迁移
rake db:sessions:create
Run Code Online (Sandbox Code Playgroud)
但是使用rails 4.0我的设置无法识别任何命令
错误是:
找不到生成器session_migration.
和
不知道如何构建任务'db:sessions:create'
分别.
我跑了:
gem install'activerecord-session_store'
如何使其工作,以便我可以存储大于4kb的购物车?
我看到了如何为rails 3设置会话的一个很好的答案(Rails会话当前实践)
我们从用户那里收集了一系列问题,我想在会议中保留他们的答案列表,直到我们结束然后全部写完......
但我不确定如何从会话中写入和读取信息......任何快速指针都会被理解为如何保存,例如,哈希的内容
此外,我们的应用程序托管在Heroku的网格上是否会改变我们可以/应该如何处理会话?
干杯,JP
我想存储当前登录用户的类型session[:user_type]
.选项包括:"admin","end_user","demo"(将来可能会添加更多用户类型).
我想知道在Rails 3应用程序中这样做是否安全.
用户可以以某种方式session[:user_type]
从"演示" 更改为"管理员"吗?
我在Rails 3.0.9中共同开发一个简单的Web应用程序,我已经意识到可能通过恶意请求篡改session_id.请注意,这是我的第一个RoR应用程序,因此我的概念可能完全错误.
当前的应用程序功能需要会话,因此我转向ActiveRecordStore会话存储,安装它并开始在原始工作流程中进行测试.我注意到Rails框架使用_session_id
一些随机类似哈希的字符串的名称和值创建cookie (在DB SESSION表中,此字符串对应于session_id
列).
如果更改了cookie中的值,例如使用Firebug,则当前会话ID将更改为随cookie提供的数据(检查过request.session_options[:id]
),并且更改将传播到数据库表,从而创建具有上述参数的新会话记录.
虽然这不会对会话的变量产生任何影响,但会话ID已经从其通常的类似哈希的外观偏离到用户篡改的外观.
这是一个问题 - 如何检测或优先防止这种行为?
security ruby-on-rails session-cookies tampering ruby-on-rails-3
我有一个Rails应用程序,它使用静态html页面(不在app/views /中)向rails服务器发送AJAX请求以进行登录和注销.
我使用会话进行用户身份验证,当用户登录时,session[:userid]
设置并将响应"登录"发送回静态html页面.但是当我点击退出按钮后登录后,我发现了session[:userid]
变成了nil
.
这是我的代码:
登录:
def login
# code here
if encrypt(params[:password]) == @user.password # authenticated
session[:userid] = @user.id
render :text => 'logged in'
else # wrong password
render :text => 'password not correct'
end
end
Run Code Online (Sandbox Code Playgroud)
退出
def logout
# here session is no longer available
session[:userid] = nil
render :text => 'logged out'
end
Run Code Online (Sandbox Code Playgroud)
登录页面:
<button id='login_button'>Log in</button>
<script type="text/javascript" charset="utf-8">
$('#login_button').click(function() {
$.ajax({
type: 'POST',
url: 'http://localhost:3000/user/login',
data: { username : $('#login_username').val() …
Run Code Online (Sandbox Code Playgroud)