ketyiaの学んだこと議事録

このサイトでは学んだことを記事にまとめていきます

ウェブ・セキュリティ基礎試験(徳丸試験)の勉強 ⑥入力処理

ウェブ・セキュリティ基礎試験(徳丸試験)の勉強 ⑥入力処理


こんばんわ!
世間では徳丸試験といわれている、ウェブ・セキュリティ基礎試験に挑戦しようということで、いつものごとくアウトプットで記事にまとめていきます。

今回は第六回目の入力処理についてまとめます。

Webアプリケーションの入力処理

入力処理は、アプリケーションロジックの処理が始まる前にデータを準備する段階に当たります。入力処理では以下の処理を行います。

・文字エンコーディングの妥当性検証

・文字エンコーディングの変換

・入力値の妥当性検証

入力値の検証


入力検証が行われないと、指定の型以外の入力値を受け取りシステムエラーやデータ不整合が発生したり、想定外のエラーが発生してしまいます。なので、入力値の検証は必要不可欠となります。「入力値の間違いを早期発見し、再入力をさせることでユーザビリティを向上させる」「間違った処理を継続することによるデータ不整合を防ぎシステム信頼性を向上させる」等の効果が見込めます。

バイナリセーフ


バイナリセーフとは、データをバイナリ(2進数)形式で安全に扱うことができるという考え方です。これは、テキストデータだけでなく、画像や音声などのバイナリデータも扱うことができるという意味です。バイナリセーフなシステムでは、データの内容や形式に関係なく、データを正確に保存し、再生することができます。

ヌルバイト攻撃


ヌルバイト攻撃は、セキュリティの脆弱性を利用した攻撃の一種です。ヌルバイト(\0)は、C言語などのプログラミング言語では文字列の終端を示す特殊な文字です。しかし、このヌルバイトを悪用すると、システムが予期しない動作をする可能性があります。

例えば、ファイル名の後にヌルバイトを追加すると、システムはヌルバイト以降の文字を無視する可能性があります。これにより、攻撃者は意図しないファイルにアクセスしたり、システムを操作したりすることができます。

これらの問題を防ぐためには、システムがバイナリセーフであること、そして入力データを適切に検証し、エンコードすることが重要です。これにより、ヌルバイト攻撃を含む様々なセキュリティ攻撃を防ぐことができます。また、システムの設計や実装段階でセキュリティを考慮に入れることも、攻撃を防ぐ上で非常に重要です。これらの対策により、システムの安全性と信頼性を高めることができます。

正規表現


正規表現は、文字列のパターンマッチングに使用される強力なツールです。特定のパターンに一致する文字列を検索、置換、または抽出するために使用されます。正規表現は、プログラミング言語テキストエディタなど、多くのソフトウェアで広く利用されています。

u修飾子

この修飾子は、正規表現UnicodeUTF-8)モードで動作するようにします。これにより、マルチバイトのUnicode文字を正しく処理することができます。例えば、日本語や他の非ラテン文字を含む文字列を扱う場合に有用です。

i修飾子

この修飾子は、大文字と小文字を区別しないマッチングを行います。つまり、パターンに含まれる文字は、大文字でも小文字でもマッチします。


ここまでです。
ここまで読んでいただきありがとうございます。