---
# System prepended metadata

title: 1月進捗報告

---

# 1月進捗報告

## 今月の活動
### SQL 学習
- DVWAを使用したSQLinjectionの学習
### 徳丸本
- 徳丸本を利用した網羅的な学習
  - 入力値の検証
  - 正規表現
  - アプリケーション別の脆弱性とその種類


### バグバウンティ
- WHO covid-19　アプリのバグバウンティを選定
- 開発環境の導入




## 高レイヤの来月の活動予定
- 一年生学習
    - 安全なWebアプリケーションの作り方
    - SQL injection　
    - php 学習

- バグバウンティ
- 年度末報告会


# 技術的トピックス
- 入力値検証
    - 入力値検証とは
        - 入力値が想定した値か否かをチェックすること
        例：電話番号の入力欄に数値以外の値が入ってる。名前の入力欄に半角数字。
        純粋なセキュリティ対策ではない。
        
    - 入力値検証の目的
        - 入力間違いを早期に発見することで、使いやすさの向上
            - 電話番号の入力欄に数値以外が入っている時、処理を実際に行い、エラーが出たら対処するよりも、エラーになりそうな箇所を先にチェックしたほうが、処理の時間もかからず時短となる。
        - 誤った処理を行うことによるデータの不整合を防ぎ、システムの信頼性を向上
        - 
        - 対策が漏れてしまっている脆弱性の実行を防ぐ。
    - 実装方法
        - PHP上にて利用される関数例
            - preg_match
            - mb_ereg
        - 実装例
            - 英数字1~5字までという制限
                preg_match('/\A[a-z0-9]{1,5}\z/ui',$string)
                - \A \z　:正規表現を全体一致させる
                - 文字クラス[a-z0-9]　:文字の指定　（今回は英字をa~z数字を0~9と範囲指定している)
                - 量指定子{1,5}:1文字以上5文字以下
                - i修飾子　:大文字小文字を区別しない
                - u修飾子　:utf-8であることを示す(この設定なしで日本語が含まれると正常な動作をしない可能性が高い)
        - 返り値
            - 正規表現とマッチする場合は１
            - マッチする場合再度入力などを図る



    - 対策不足の場合の被害
        - dvwaの例
            - dvwaのコードを貼る
               ![](https://i.imgur.com/D4F0Qyd.png)

            - 特殊文字の入った攻撃文字列例
                - 1' or 'a' = 'a
            - データベースの値が漏れている画像を貼る
                ![](https://i.imgur.com/8IASYIv.png)


正常な動作例
![](https://i.imgur.com/hL7PsHr.png)
