<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://php-secure-coding.ohgaki.net/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>PHP Secure Coding Standard - ja:rule:inp</title>
        <description></description>
        <link>https://php-secure-coding.ohgaki.net/</link>
        <lastBuildDate>Wed, 01 Jul 2026 19:54:52 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://php-secure-coding.ohgaki.net/lib/exe/fetch.php/wiki/dokuwiki.svg</url>
            <title>PHP Secure Coding Standard</title>
            <link>https://php-secure-coding.ohgaki.net/</link>
        </image>
        <item>
            <title>デフォルトで初期化される外部入力をバリデーションする</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/inp/%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%A7%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%95%E3%82%8C%E3%82%8B%E5%A4%96%E9%83%A8%E5%85%A5%E5%8A%9B%E3%82%92%E3%83%90%E3%83%AA%E3%83%87%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%99%E3%82%8B?rev=1498964312&amp;do=diff</link>
            <description>デフォルトで初期化される外部入力をバリデーションする

PHPは多くの外部からの入力を自動的に初期化し、スーパーグローバル配列として利用可能にしている。外部からの入力であることは明らかな物もあるが、そうでない物もある。</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 02 Jul 2017 02:58:32 +0000</pubDate>
        </item>
        <item>
            <title>バリデーションする前に全ての変換作業を行う</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/inp/%E3%83%90%E3%83%AA%E3%83%87%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%99%E3%82%8B%E5%89%8D%E3%81%AB%E5%85%A8%E3%81%A6%E3%81%AE%E5%A4%89%E6%8F%9B%E4%BD%9C%E6%A5%AD%E3%82%92%E8%A1%8C%E3%81%86?rev=1499130591&amp;do=diff</link>
            <description>バリデーションする前に全ての変換作業を行う

バリデーションを行うデータはバリデーションを行う前に全ての変換作業を行わなければならない。変換作業を後で行うとバリデーションが無意味となる場合が多々ある。</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 04 Jul 2017 01:09:51 +0000</pubDate>
        </item>
        <item>
            <title>不要な入力パラメーターを含む場合に拒否する</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/inp/%E4%B8%8D%E8%A6%81%E3%81%AA%E5%85%A5%E5%8A%9B%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%BC%E3%82%92%E5%90%AB%E3%82%80%E5%A0%B4%E5%90%88%E3%81%AB%E6%8B%92%E5%90%A6%E3%81%99%E3%82%8B?rev=1509018442&amp;do=diff</link>
            <description>不要な入力パラメーターを含む場合に拒否する

入力バリデーションは使わないパラメーターも検証しなければならない。使わないパラメーター（攻撃者が設定した追加のパラメーター）を含むリクエストは拒否しなければならない。</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 26 Oct 2017 11:47:22 +0000</pubDate>
        </item>
        <item>
            <title>入力バリデーションにブラックリスト方式を用いない</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/inp/%E5%85%A5%E5%8A%9B%E3%83%90%E3%83%AA%E3%83%87%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AB%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF%E3%83%AA%E3%82%B9%E3%83%88%E6%96%B9%E5%BC%8F%E3%82%92%E7%94%A8%E3%81%84%E3%81%AA%E3%81%84?rev=1499130432&amp;do=diff</link>
            <description>入力バリデーションにブラックリスト方式を用いない

入力バリデーションにはホワイトリスト方式を用い、ブラックリスト方式は用いない。サイニタイズはブラックリスト方式であり、利用は極力避ける。</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 04 Jul 2017 01:07:12 +0000</pubDate>
        </item>
        <item>
            <title>入力文字エンコーディングをバリデーションする</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/inp/%E5%85%A5%E5%8A%9B%E6%96%87%E5%AD%97%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%92%E3%83%90%E3%83%AA%E3%83%87%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%99%E3%82%8B?rev=1458287747&amp;do=diff</link>
            <description>入力文字エンコーディングをバリデーションする

PHPの文字列型は文字エンコーディング情報を持たないバイナリ型である。APIや外部システムが入力文字エンコーディングのバリデーションを行っている場合も多いが、文字エンコーディングを利用したインジェクション攻撃のリスクを無くす為に入力文字エンコーディングはバリデーションしなければならない。</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 18 Mar 2016 07:55:47 +0000</pubDate>
        </item>
        <item>
            <title>文字列を正規化する</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/inp/%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E6%AD%A3%E8%A6%8F%E5%8C%96%E3%81%99%E3%82%8B?rev=1499159983&amp;do=diff</link>
            <description>文字列を正規化する

文字列の正規化は大別して2種類ある

	*  Unicode文字列の正規化
	*  日本語表記の正規化

PHPの場合、特に理由がない場合、UTF-8エンコーディングを使う方が良い。

Unicodeには文字の表記方法が複数ある。例えば、「がぎぐげご」などの濁音は「か」と「ﾞ」が分離しているNFD表記と一緒になっているNFC表記がある。これらの表記方法が統一されない場合、同一文字であっても異るバイト列になる。これを統一するのが正規化である。特に問題になるのはWindows/UNIX系OSとmacOSのファイル名である。Windows/UNIX系OSはNFC、macOSはNFDを利用している。Windows/UNIX系OSはファイル名を積極的にNFCに変換（正規化）しないため、maxOSのファイル名を正規化なしに利用すると「見た目は同じのファイルが複数存在する」状態になる。…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 04 Jul 2017 09:19:43 +0000</pubDate>
        </item>
        <item>
            <title>正規表現に用いられる入力データにメタ文字がないことを確認する</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/inp/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE%E3%81%AB%E7%94%A8%E3%81%84%E3%82%89%E3%82%8C%E3%82%8B%E5%85%A5%E5%8A%9B%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AB%E3%83%A1%E3%82%BF%E6%96%87%E5%AD%97%E3%81%8C%E3%81%AA%E3%81%84%E3%81%93%E3%81%A8%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B?rev=1499131710&amp;do=diff</link>
            <description>正規表現に用いられる入力データにメタ文字がないことを確認する

正規表現やその一部に外部入力を用いると、正規表現を用いたDoSや情報漏洩の原因となる場合がある。正規表現を用いた検索を行う場合、入力データにメタ文字が無いことを確認する。</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 04 Jul 2017 01:28:30 +0000</pubDate>
        </item>
    </channel>
</rss>
