9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Rails】simple_formatとは

Last updated at Posted at 2022-01-03

##simple_formatとは
simple_formatは、改行文字を含むテキストをブラウザ上で表示させる時に使われるヘルパー。
simple_formatの特徴
・文字列を<p>で囲む
・改行には<br/>を付与
・連続した改行については、</p><p>を付与

##記入法

<%= simple_format(入力値) %>

##simple_formatの有無
###simple_formatなし
本当は改行しているが、出力値では改行されていない。

# 入力値
simple_formatのテスト。 
改行を1度挟む。

# 出力値
simple_formatのテスト。 改行を1度挟む。

###simple_formatあり
出力値でも改行されていることがわかる。
全体を

で括っているため、最後の行にスペースが入っているように見える。

# 入力値
simple_formatのテスト。 
改行を1度挟む。

# 出力値
simple_formatのテスト。
改行を1度挟む。
---ここに1文空く---

##simple_formatのオプション
###sanitize
sanitizeオプションを付け加えることによって、一部の危険なHTMLタグを取り除いてくる。

<%= simple_format(入力値, sanitize: true)%>

###hオプション
一部ではなく、全てのHTMLタグを安全に表示したいという場合にはhオプションを使う。
hオプションをsimple_formatに付け加えることによって、与えられたテキストにhtmlタグが埋め込まれている場合にエスケープすることが可能です。ただし、scriptタグに関しては除去される。

scriptタグとは、JavaScriptやVBScriptなどのスクリプトを文書内に埋め込んだり外部スクリプトを読み込んだりするために使用するタグ。
スクリプトの言語のタイプを示すtype属性の値には、JavaScript、VBScriptなどのスクリプト言語名を指定。
なお、type属性は必須属性。

<%= simple_format(h(入力値))%>
hオプション使用例.
# 入力値
hオプションがある場合について検証。
<h1>hオプションがある場合はこのようになる。</h1>

# 出力値
hオプションがある場合について検証。
<h1>hオプションがある場合はこのようになる。</h1>

このようにエスケープを行う処理をオプションで記述することによってクロスサイトスクリプティング(XSS)という攻撃を防ぐことができる。

##参考記事
Railsのヘルパーメソッド「simple_format」について調べて見た
Railsヘルパーメソッド「simple_format」の使い方
script

9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?