男女比はカレーと福神漬けと同じくらいスマートフォン用の表示で見る男女比はカレーと福神漬けと同じくらいマサカリよろしくお願いします。2016-09-21Railsでセキュリティのことを考えずに作ったwebアプリは脆弱性があるのか調べてみた(webアプリ作成編)Railsこんにちは。僕はこのたびセキュリティキャンプ九州2016に行ってきました。一言感想を言わせていただくと大変面白かったです。一つ不安になったことがあります。それはwebアプリの脆弱性です。キャンプ中にwebアプリの脆弱性を見つけてみようという講座があり、脆弱性があるwebアプリを公開してみんなで脆弱性を探すというものだったのですが、30分もたたないうちに実装されてないはずの画像アップロード機能が追加されたりページを開いた瞬間音声が流れ出す迷惑サイトに変化していたりと蜂の巣状態になっていました。Railsで作ったwebアプリに脆弱性が存在するのかを確かめてみようと思います。仕様セキュリティキャンプ九州で使用した脆弱SNSの機能は次のようなものでした。投稿とユーザの検索機能DB投稿テーブル(内容/投稿者/日時)ユーザテーブル(ユーザ名/パスワード/URL)これと同じような機能のwebアプリをRailsでできるだけコードを書かずに作ってみたいと思います。Railsではログイン機能はコマンドだけでは生成できないので超有名なユーザー管理のgemであるDeviseを使いました。4.1.1ログイン機能まずはrailsアプリを生成。以下のコマンドを実行します。—Gemfileに以下を追記。installを実行。generateでdeviseをインストールします。これでユーザー管理を行うための準備が完了します。devise:views===============================================================================言われた通りに設定していきます。development.rbに追記します。'パスワード'}root用のcontrollerとviewをコマンドで生成します。app/assets/stylesheets/home.scssroutes.rbに追記してroot_urlを設定します。"home#index"home/index.html.erbにログインと登録用のURLを追加します。app/views/home/index.html.erb</p>ログイン情報を出力させるためにlayouts/application.html.erbに追加します。%></body></html>次にユーザー用のmodelとmigrationファイルを生成します。user.rbの一部をコメントアウトします。(タイムスタンプ)__devise_create_users.rbの一部もコメントアウトします。endendDBを生成します。以下のコマンドを実行してください。サーバを起動させ、http://localhost:3000にアクセスするとこうなります。upから登録をすませるとこれでdeviseのデフォルトのログイン機能は完了ですが、現在ではユーザ情報がメールアドレスとパスワードしか存在しません。ユーザ情報にユーザ名を追加し、ユーザ名とパスワードでログインできるようにします。以下のコマンドを実行します。db/migrate/(タイムスタンプ)_add_username_to_users.rbusernameはログインで使われるためuniqueを与えます。(タイムスタンプ)_add_username_to_users.rbに追記します。endend以下のコマンドを実行します。======================user.rbにvalidationを追加します。trueログインで使うデータを変更したため、viewをカスタマイズします。以下のコマンドを実行します。