Xiaopei's DokuWiki

These are the good times in your life,
so put on a smile and it'll be alright

User Tools

Site Tools


it:rails

Ruby on Rails

安装

如何快速正确的安装 Ruby, Rails 运行环境

  • 如果 `require': no such file to load — mkmf (LoadError), 则需 sudo aptitude install ruby1.9.1-dev

教程

开发环境

rubymine

steps:

  1. New Project
  2. 切到 terminal, git init commit(因为目前 rubymine 中的 git 用法还不熟)
  3. C-A-G(rails generator, aka rails generate) scaffold …
  4. generate 后会自动打开 migration 等文件, 如有需要修改 migration
  5. C-A-R(rake, 或在工具栏按耙子) db:migrate
  6. 在工具栏按 运行(aka rails server)
  7. 切到 browser 测试

emacs

代码风格

erb

<%= %>运行包含的 ruby 并输出结果, 默认对输出做 h, 与<%h %>相同
<%=h %>h 后输出
<%=raw %>直接输出 HTML
<%=sanitize %>删去不允许的标签后输出 HTML
<% %>运行包含的 ruby 但不输出结果
<%# %>注释

安全

Rails 把 session 信息默认设置了 HTTP only 属性,HTTP only cookie 不会被 Javascript 读取,这样即使网站出现 XSS 漏洞,也不会被 Session 劫持。保障了用户的账户安全。不过也不是绝对安全,由于 HTTP 协议是明文传输,最安全的做法是使用 HTTPS,在网络传输过程中 Cookie 数据也是加密的。

Rails4 引入的三个默认HTTP Headers

config.action_dispatch.default_headers = {
      'X-Frame-Options' => 'SAMEORIGIN',
      'X-XSS-Protection' => '1; mode=block',
      'X-Content-Type-Options' => 'nosniff'
    }
  • X-Frame-Options

X-Frame-Options 头可以决定网页是否允许被嵌入(iframe/frame)到其他页面。设置为 DENY 之后会阻止所有页面内嵌你的网页,设置为 SAMEORIGIN 会允许自己域下的网站内嵌你的网页。 还可以设置指定允许内嵌你的页面的域。不允许别人内嵌你的页面是减少 click-jacking 的有效途径。

  • X-XSS-Protection

IE8 以及之后的版本支持 X-XSS-Protection 头,设置为 1;mode=block 会激活 IE 内建的 XSS 过滤机制,阻止常见的 XSS 攻击。

  • X-Content-Type-Options

X-Content-Type-Options 头设置为 nosniff 会阻止浏览器通过内容猜测文件的 MIME Type 的行为。如果不阻止,浏览器的这一行为会被黑客利用,增加XSS的机率。

refs

相关工具

Passenger

Phusion Passenger (informally also known as mod_rails and mod_rack) is a free module for the Apache HTTP Server and nginx for deployment of Ruby applications, including those built using the Ruby on Rails framework. It is available as a Gem package and is supported on Unix-like operating systems. Phusion Passenger also supports arbitrary Ruby web applications that follow the Rack interface.

it/rails.txt · Last modified: 2014/01/09 17:37 by admin