技術ブログスマートフォン用の表示で見るまったり技術ブログ主にWebエンジニア向けのセキュリティ情報。正常に動作させるためモデルとコントローラを編集モデルコントローラはじめに今回はBot等に自動認証を許さないために用いられる「CAPTCHA」をRailsアプリケーションに実装してみます。ImageMagickあたりでつまずいたので、備忘録感覚にメモ。環境確認とアプリの作成まずは動作環境の確認とサンプルサプリケーションの作成を行っていきます。普及している4系を使っていきます。app「simple-captcha」の追加(失敗)メインとなるキャプチャのライブラリですが、上位の人気を誇っている「simple-captcha」を入れてみました。'git://github.com/galetahub/simple-captcha.git'そして、いつも通りにインストールします。installsimple-captchaのセットアップここで問題が発生しました。上記URL先を見てみると、新バージョンである『SimpleCaptcha2』を使えば解決できそうな予感。db/migrate/20170112000239_create_simple_captcha_data.rb様々なファイルが作成されたということで今回は成功したらしい。db/migrate/に下記のようなマイグレーションファイルが作成されたことが確認できます。endend下記コマンドでテーブルを作成します。SimpleCaptcha::ControllerHelpers」の一行を追記します。SimpleCaptcha::ControllerHelpersendテストアプリを作成ここでは簡単にRESTアプリを作成します。下記のようにキャプチャ入力項目を追記します。</div>(省略)ブラウザでキャプチャの確認ここまで進めますと「http://localhost:3000/memos/new」にアクセスするとキャプチャ入力項目が表示されるはずですので、確認してみます。表示されていません・・・。サーバ側では以下のようなエラーが表示されています。画像の加工処理がうまくいっていないようですので、その処理に必要なパッケーシをインストールします。ImageMagick-develここでブラウザで確認してみても画像が表示されていません。調べてみるとImageMagickに脆弱性があり、設定ポリシーが厳しくなりデフォルト設定だと表示されていないと推測。piyologその設定ファイルである「ポリシーファイル」を以下のように編集してみます。/>--></policymap>編集を終えたら再度ブラウザでアクセスし確認します。今度はうまく表示できているようです。肝心なキャプチャをデタラメな値を入力しても作成できるようになっています。正常に動作させるためにモデルとコントローラの編集を行います。:captcha」の一行を追記します。:captchaendコントローラ末尾にあるmemo_params関数の中身を以下のように編集します。endend同じコントローラファイルに入力されたキャプチャ文字列が正しいかの検証処理をcreateメソッド内に記述します。以下のように編集します。end最後に入力された値の引き渡しがうまくいくように下記のコードを記述します。endendこれで入力された文字列と画像に表示されている文字列の比較が行われ、等しい場合に正常な処理が行われるようになります。Tokenの説明は下記の記事を参照。週間)Webエンジニアです。セキュリティ記事まとめ作ったWebサービスセキュリティニュースを5分間隔で収集します。reserved.スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。