LoginSignup
0
0

More than 3 years have passed since last update.

情報セキュリティ

Posted at

XSS(クロスサイトスクリプティング)

javaで行える全ての動作で攻撃可能
railsではデフォルトでセキュリティの設定がされているため、この攻撃に対して安全に利用できる。
何らかの手法で自身のアプリに入り込まれ、セキュリティ設定を無効にされた場合、
cookieを盗まれて情報が流出したり、マルウェアにアクセスさせられ、ウイルスに感染してしまう。

SQLインジェクション

アプリケーション外部からSQL文を挿入されること。
挿入されることにより、DB内の情報を全て盗まれたり、アカウントを乗っ取られたりする。
対策は、「」'や「/」のエスケープ文字を使うこと、バインド機構を使用すること。

バインド機構とはDB側からSQL文を発行し、その中の必要な情報だけを入力出来るようにする仕組み。

sql.rb
SELECT * FROM user WHERE user_id=? AND password=?

DBから上記のようなSQL文が発行される。この文中の?の値だけ入力可能。
railsでは、デフォルトでここまで入力されるようになっている。

自ら入力する必要があるならば
find_by_sqlメソッドを利用し、?によって入力値を指定してあげる必要がある。

CSRF(クロスサイトリクエストフォージェリ)

パスワードの変更、ECサイトでの購入などの重要な処理を行うときに攻撃から守る。
対策は、その人個人しか知らないような秘密情報の埋め込み(トークン)を使用すること、
パスワードの再入力を促す画面を設定すること、
リファラーのチェック(どのような経路でサイトにアクセスしたか)が挙げられる。

これは、重要な処理を行うときにだけ使用する。
(全てにおいて適用すると何度も入力することになる。DBとのやりとりも多くなるため動作が遅くなる。)

セッションハイジャック

セッションIDを乗っ取られる。これを乗っ取られると個人情報の閲覧や送金、購入などほぼ何でも出来る。
対策としてはSSLを有効にすること。
railsでは

フォルダ名/confing/environment/production.rb
config.force_ssl = true

を有効にすることでSSLが使用出来る。

0
0
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
0
0