基本的なセキュリティトピックに気をつけて設計できるようになる

 

クロスサイトスクリプティング

[Ruby-on-rails] rawとhtml_safeとの対比htmlをエスケープする erb | CODE Q&A [日本語]

RailsビューのHTMLエスケープは#link_toなどのヘルパーメソッドで解除されることがある

今までHTMLに普通に

<td><%= blog.title %></td>

としていたところにもしも

"<script>alert('Hello');</script>" というTitleがきてしまうと不都合!

<td><%= blog.title.html_safe %></td>

html_safeを使って該当箇所にはJavaScriptのアラート表示させる。

 

 

html_safe :

文字列を信頼できる安全なものとしてマークします。 追加のエスケープ処理を行わずにHTMLに挿入されます。

"<a>Hello</a>".html_safe
#=> "<a>Hello</a>"

nil.html_safe
#=> NoMethodError: undefined method `html_safe' for nil:NilClass

ActiveSupport::SafeBuffer

 

SQL Injection

railsのsqlインジェクションの対策方法 - mikami's blog

Railsのセキュリティ対策で調べた事

Sonic

SQlite3でエラー出なかったけどMySQLに変更したら出た

 使用するデータベースごとにSQLインジェクションも変わるということ。