基本的なセキュリティトピックに気をつけて設計できるようになる
[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
SQL Injection
railsのsqlインジェクションの対策方法 - mikami's blog
SQlite3でエラー出なかったけどMySQLに変更したら出た
使用するデータベースごとにSQLインジェクションも変わるということ。