<?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</title>
        <description></description>
        <link>https://php-secure-coding.ohgaki.net/</link>
        <lastBuildDate>Wed, 01 Jul 2026 17:38:08 +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>不要な入力パラメーターを含む場合に拒否する - created</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>yohgaki@undisclosed.example.com (yohgaki)</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/%E5%85%A5%E5%8A%9B?rev=1509017315&amp;do=diff</link>
            <description>入力

入力処理の基本原則は

	*  ゼロトラスト - 全てを信頼しない（検証済みのモノ以外、データおよびコード、は信頼できない）
	*  ホワイトリスト - 許可するモノを設定する（入力仕様に従い許可する入力のみ受け入れる）</description>
            <author>yohgaki@undisclosed.example.com (yohgaki)</author>
            <pubDate>Thu, 26 Oct 2017 11:28:35 +0000</pubDate>
        </item>
        <item>
            <title>ファイルのパーミッションを検証する - [適合コード例] </title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/fle/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%83%91%E3%83%BC%E3%83%9F%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E6%A4%9C%E8%A8%BC%E3%81%99%E3%82%8B?rev=1509016519&amp;do=diff</link>
            <description>ファイルのパーミッションを検証する

共有システムの場合、アクセスしているファイルのアクセス権限を確認し、不正に書き換えなどが行えない状態であることを確認する必要があります。アクセスパーミッション権限とファイルオーナー、ファイルグループを検証する必要があります。</description>
            <author>yohgaki@undisclosed.example.com (yohgaki)</author>
            <pubDate>Thu, 26 Oct 2017 11:15:19 +0000</pubDate>
        </item>
        <item>
            <title>シンボリックリンクを検証する - [例外] </title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/fle/%E3%82%B7%E3%83%B3%E3%83%9C%E3%83%AA%E3%83%83%E3%82%AF%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%92%E6%A4%9C%E8%A8%BC%E3%81%99%E3%82%8B?rev=1509011630&amp;do=diff</link>
            <description>シンボリックリンクを検証する

ファイルシステムを利用した攻撃手法にシンボリックリンクを利用した手法がある。このためアクセスしているファイルがファイルそのものなのか、シンボリックリンクなのか、検証しなければならない。</description>
            <author>yohgaki@undisclosed.example.com (yohgaki)</author>
            <pubDate>Thu, 26 Oct 2017 09:53:50 +0000</pubDate>
        </item>
        <item>
            <title>ファイルパスをサニタイズしない</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/fle/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%91%E3%82%B9%E3%82%92%E3%82%B5%E3%83%8B%E3%82%BF%E3%82%A4%E3%82%BA%E3%81%97%E3%81%AA%E3%81%84?rev=1509010432&amp;do=diff</link>
            <description>ファイルパスをサニタイズしない

セキュリティ対策ではサニタイズ処理は基本的に利用してはならない処理である。ファイルパスをサニタイズするだけでは対策にならない場合がある。</description>
            <author>yohgaki@undisclosed.example.com (yohgaki)</author>
            <pubDate>Thu, 26 Oct 2017 09:33:52 +0000</pubDate>
        </item>
        <item>
            <title>statキャッシュをクリアする - created</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/fle/stat%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3%82%92%E3%82%AF%E3%83%AA%E3%82%A2%E3%81%99%E3%82%8B?rev=1509007533&amp;do=diff</link>
            <description>statキャッシュをクリアする

PHPにはstat情報をキャッシュします。このため、PHPのAPI以外でstat情報を更新したり、外部プロセスがstat情報を更新した場合、キャッシュをクリアする必要があります。</description>
            <author>yohgaki@undisclosed.example.com (yohgaki)</author>
            <pubDate>Thu, 26 Oct 2017 08:45:33 +0000</pubDate>
        </item>
        <item>
            <title>読込むファイルサイズを検証する - [例外] </title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/fle/%E8%AA%AD%E8%BE%BC%E3%82%80%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B5%E3%82%A4%E3%82%BA%E3%82%92%E6%A4%9C%E8%A8%BC%E3%81%99%E3%82%8B?rev=1509003912&amp;do=diff</link>
            <description>読込むファイルサイズを検証する

ファイルサイズが保証できない場合、ファイルサイズを検証しないと巨大なデータを読み込んでしまう可能性がある。大きなデータには小さなファイルにないリスクが存在する。</description>
            <author>yohgaki@undisclosed.example.com (yohgaki)</author>
            <pubDate>Thu, 26 Oct 2017 07:45:12 +0000</pubDate>
        </item>
        <item>
            <title>正規化ファイルパスを利用する - [非適合コード例] </title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/fle/%E6%AD%A3%E8%A6%8F%E5%8C%96%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%91%E3%82%B9%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B?rev=1509001925&amp;do=diff</link>
            <description>正規化ファイルパスを利用する

ファイルパス名の正規化はシステムによって異なる。Windows/Linuxの場合は積極的にUnicode正規化を行わずNFC正規化を利用する。macOSの場合、積極的にNFD正規化を行う。</description>
            <author>yohgaki@undisclosed.example.com (yohgaki)</author>
            <pubDate>Thu, 26 Oct 2017 07:12:05 +0000</pubDate>
        </item>
        <item>
            <title>ファイル - [ファイル] </title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB?rev=1508999947&amp;do=diff</link>
            <description>ファイル

全ての外部入力は信頼できない。ソフトウェアの外部入力とはプロセス/スレッドの外から入ってくるデータ全てです。ファイルも外部入力であり、デフォルトで信頼できない。信頼するためには信頼できるファイルであることを保証する必要がある。（システム外部からの注入、改ざんなどが無いことを保証する）</description>
            <author>yohgaki@undisclosed.example.com (yohgaki)</author>
            <pubDate>Thu, 26 Oct 2017 06:39:07 +0000</pubDate>
        </item>
        <item>
            <title>unserialize_は利用しない</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/ser/%E7%84%A1%E7%94%A8%E3%81%AAserialize/unserialize_%E3%81%AF%E5%88%A9%E7%94%A8%E3%81%97%E3%81%AA%E3%81%84?rev=1508919055&amp;do=diff</link>
            <description>外部データにserialize/unserialize_は利用しない

PHPのserialize/unserialize関数は安全なデータストレージなどにPHP変数を保存する為に利用します。一旦、外部に保存されたデータ（$_POST、$_GET、$_COOKIEなど）は改ざんされ、unserialize時に不正なデータとなっている可能性があります。この結果、不正な値に改ざんされたり、不正なオブジェクトを注入されたり、メモリ管理の不具合（解放済みアドレスの利用など）による任意コード実行が行われたりします。…</description>
            <author>yohgaki@undisclosed.example.com (yohgaki)</author>
            <pubDate>Wed, 25 Oct 2017 08:10:55 +0000</pubDate>
        </item>
        <item>
            <title>セキュアなコードの構造_アーキテクチャー</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/intro/%E3%82%BB%E3%82%AD%E3%83%A5%E3%82%A2%E3%81%AA%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E6%A7%8B%E9%80%A0_%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3%E3%83%BC?rev=1508891926&amp;do=diff</link>
            <description>セキュアなコードの構造

構造（アーキテクチャー）とは基本設計です。設計のないシステムが問題をかかえるのは当然です。セキュアなコードの構造と論理はシンプルです。

プログラムの基本構造</description>
            <author>yohgaki@undisclosed.example.com (yohgaki)</author>
            <pubDate>Wed, 25 Oct 2017 00:38:46 +0000</pubDate>
        </item>
        <item>
            <title>外部へ出力するデータはデフォルトで全て無害化する - ...</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/out/%E5%A4%96%E9%83%A8%E3%81%B8%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AF%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%A7%E5%85%A8%E3%81%A6%E7%84%A1%E5%AE%B3%E5%8C%96%E3%81%99%E3%82%8B?rev=1508890837&amp;do=diff</link>
            <description>外部へ出力するデータはデフォルトで全て無害化する

安全なコードを書く為には、外部（データベース、OS、クライアントなど）へ出力するデータはデフォルトで全て無害化することが必要です。</description>
            <author>yohgaki@undisclosed.example.com (yohgaki)</author>
            <pubDate>Wed, 25 Oct 2017 00:20:37 +0000</pubDate>
        </item>
        <item>
            <title>セキュアコーディングの目的 - [セキュリティ対策の定義] </title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/intro/%E3%82%BB%E3%82%AD%E3%83%A5%E3%82%A2%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E3%81%AE%E7%9B%AE%E7%9A%84?rev=1508556536&amp;do=diff</link>
            <description>セキュアコーディングの目的

セキュアコーディングは単なる脆弱性対策ではない。セキュアコーディングの目的は

プログラムが正しく実行されること/正しく実行されたことを保証する</description>
            <author>yohgaki@undisclosed.example.com (yohgaki)</author>
            <pubDate>Sat, 21 Oct 2017 03:28:56 +0000</pubDate>
        </item>
    </channel>
</rss>
