Serviceを読んで理解し、同意したものとみなします。最後に改めて記載しますが、最初に質問を記載します。以下の2点について、ご教授いただきたいです。そもそも実装方法が適切かGemを使うのがスタンダード、コードがおかしい、などXSS脆弱性に対処できているかやりたいこと現在、Railsで掲示板を作成しています。Twitterなど多くのサイトで使われているような、ユーザーが投稿するテキストにURLがある場合はtarget="_blank"を付けてリンク化して表示する機能を実装したいです。テキスト内の改行を反映させたいため、Railsが用意しているビューヘルパーのsimple_formatを使用します。実装に際して検索をかけてみたところ、以下の2つのGemが出てきたのですが、どちらのGemもネットに存在する情報が少ないことから、Gemを使った実装方法がスタンダードなのか分からないため、Gemを使わずに実装する形にしました。tenderlove/rails_autolinkhttps://github.com/tenderlove/rails_autolinkvmg/rinkuhttps://github.com/vmg/rinku参考にしたURL以下が実装時に参考にしたURLです。2.3.1コード以下で、ユーザーが投稿したテキストにURLが含まれていれば、その部分をリンクにするtext_url_to_linkメソッドを定義しています。endend以下で、ユーザーが投稿したテキストを表示しています。前提としまして、Discussionsテーブルにtext型のcontentカラムがある状況です。質問したいコードをdivで囲ってidを設定しているのはAjaxでDiscussionのcontentを編集するためです。%>上記のviewファイル内の質問したいコードの流れは以下のようになっていると認識しています。最終的にテキスト内のURL形式の文字列がリンクで表示される上記のコードを書いた状況で<script>alert('hoge')</script>と自分が作っている掲示板に投稿したところ、エスケープされて表示されました。質問内容を記載致します。以下の2点になります。そもそも実装方法が適切かGemを使うのがスタンダード、コードがおかしい、などXSS脆弱性に対処できているか初心者のため、内容に至らない点もあるかもしれませんが、ご教授いただけますと幸いです。票1セキュリティは専門でないため、あくまでも私の経験上の話ですが、XSSについて問題がないかどうかは実際にそれに該当するであろうデータを処理させてみて確認した方が間違いないと思います。URIにjavascript://を許すかどうか、といったことは実際に自分で確かめるか、gemに自動テストが付いているなら、そのコードを見て実行させて確認するかしないと、本当の意味では危険性の判断はできないかなと思います。次にgemを使うべきかどうかは、他プラットフォームのプログラミングをするときとも共通した性質があると思います。自分が使うサードパーティライブラリが実際に用途に適した動作をするっぽい、と確信できるなら使えばよいでしょうが、やはり実質的にポピュラーなものである方が安心はできるでしょう。前述のセキュリティ周りの問題等についてもポピュラーなものの方がユーザーも多いので、きちんと対処されているのではという期待もある程度できるためです。その他、gemの更新頻度や問題対処に対するメンテナーの人々の素早さは、できるのであれば確認したほうが良いです。githubでissueやプルリクエストがやたら溜まっていたり、最終更新日が1年以上経過していた場合、問題があると分かっても対処してもらえないリスクはどうしても高くなってしまいがちです。方はissueやプルリクエストが溜まったまま放置されているのが気になるといえば気になります。結局他人の書いたものなので、gemを入れれば入れるほど、プログラムの外部依存性はどんどん高まってしまいます。そのgemのメンテナンス性に疑問があったり、絶対に自分自身が制御を保証したい場合は、あえて自分で実装するという選択もあり得ると思います。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。