ログイン新規登録

Qiitaにログインして、便利な機能を使ってみませんか?

あなたにマッチした記事をお届けします

便利な情報をあとから読み返せます

3
3

情報の漏えいや不正な利用から守るために開発者が行う対策をまとめる

:point_up:パラメータ改ざん

GetとPostの送信方法のうち、
アドレスバーからURLパラメータを直接改ざんし不正利用する攻撃

対策➡Getではなくセキュリティのさらに強いPostを使う

:point_up:SQLインジェクション

クエリ※を操作して不正にデータベースを操作する、
SQL文の脆弱部分を不正利用した攻撃

対策➡正しいセミコロン、シングルクォーテーションを心掛け、
   エスケープ処理をする
対策➡SQLよりPHPのプリペアドステートメント※を利用する

クエリとは

データベースに対する命令文のこと

プリペアドステートメント(prepared statement)とは

プログラム上で動的にSQL文を生成する必要があるとき、
可変部分を変数のようにしたSQL文をあらかじめ作成しておき、
値の挿入は処理系に行わせる方式。
実行効率を向上させ、SQLインジェクションを防止する効果がある。
https://e-words.jp/w/%E3%83%97%E3%83%AA%E3%83%9A%E3%82%A2%E3%83%89%E3%82%B9%E3%83%86%E3%83%BC%E3%83%88%E3%83%A1%E3%83%B3%E3%83%88.html

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

SNSなどのユーザー入力サイトで悪質なスクリプトを表示すること

対策➡勝手なコードをうたせないように入力値を制限する
対策➡スクリプトの構成に必要な記号(<>など)を置換させる

⇒htmlspecialchars関数が担ってくれる
 記述方法:

htmlspecialchars( 変換対象, 変換パターン, 文字コード )

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

気づかない間に自分が悪者にされてしまうような、
意図しないリクエストを強要して攻撃手法

対策➡トークン※を使って、
正しいフォームから遷移された正しいデータであることを確かめる

トークンの作成方法

トークンはセッションIDをハッシュ化して作成される⇒hash関数が担ってくれる
記述例(バージョンごとに異なる方法):

hash('sha512', 'テスト', false)

:point_up:セッションハイジャック

他人のセッションIDを盗んで本人になりすます。例としてクレジットカードの不正利用が挙げられる

対策➡画面遷移するたびにセッションIDを再作成する⇒session_regeneraite_id関数が担ってくれる
記述方法:

session_regenerate_id(true) 
3
3
0

新規登録して、もっと便利にQiitaを使ってみよう

  1. あなたにマッチした記事をお届けします
  2. 便利な情報をあとで効率的に読み返せます
  3. ダークテーマを利用できます
ログインすると使える機能について
kogure_slj
slj
2004年に設立されたIT企業、株式会社スピードリンクジャパンは、「人の価値の最大化」をミッションに掲げています。主にSESや受託開発を提供するシステム開発会社です。また、当社は2023年のアドベントカレンダーにも参加中です。詳細は以下のリンクをご覧ください。 https://qiita.com/advent-calendar/2023/slj

コメント

この記事にコメントはありません。

いいね以上の気持ちはコメントで

記事投稿キャンペーン開催中

アクセシビリティの知見を発信しよう!

~
詳細を見る
3
3

ログインして続ける

ソーシャルアカウントでログイン・新規登録

メールアドレスでログイン・新規登録