<?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</title>
        <description></description>
        <link>https://php-secure-coding.ohgaki.net/</link>
        <lastBuildDate>Wed, 01 Jul 2026 19:44:21 +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>php設定</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/php%E8%A8%AD%E5%AE%9A?rev=1457382557&amp;do=diff</link>
            <description>PHP設定

	*  open_basedirを利用する
	*  防御的な設定を有効にする
	*  重要な設定は管理者のみ変更可能にする
	*  危険性が高い設定を常に有効にしない
	*  memory_limitを2GB以上に設定しない</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 07 Mar 2016 20:29:17 +0000</pubDate>
        </item>
        <item>
            <title>オブジェクト指向</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91?rev=1457318392&amp;do=diff</link>
            <description>オブジェクト指向

	*  プロパティーへのアクセスを制限する
	*  信頼できないインスタンスへはオブジェクトのコピーを渡す
	*  protectedのオブジェクトを返す場合はリファレンスを返さない
	*  パラメータとして渡されたオブジェクトを変更する場合、防御的にコピーを行い操作する
	*  機密性が必要なクラスのコピーを許可しない</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 07 Mar 2016 02:39:52 +0000</pubDate>
        </item>
        <item>
            <title>コードの配置</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E9%85%8D%E7%BD%AE?rev=1457039890&amp;do=diff</link>
            <description>コードの配置

	*  エントリポイント
	*  埋め込みコード
	*  テンプレート
	*  ライブラリ
	*</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 03 Mar 2016 21:18:10 +0000</pubDate>
        </item>
        <item>
            <title>シリアライズ</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%A9%E3%82%A4%E3%82%BA?rev=1457316978&amp;do=diff</link>
            <description>シリアライズ

	*  unserialize()は利用しない
	*  unserialize()するデータが安全であることを確認する
	*  アンシリアライズ可能なクラスを指定する</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 07 Mar 2016 02:16:18 +0000</pubDate>
        </item>
        <item>
            <title>セッション管理</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E7%AE%A1%E7%90%86?rev=1457349552&amp;do=diff</link>
            <description>セッション管理

	*  未初期化のセッションIDを受け入れない
	*  セッションデータを突然削除しない
	*  不必要にURIベースのセッションID管理を有効化しない
	*  セッションデータ削除をGCに頼らない
	*  不必要にセッションIDが利用可能な範囲を広げない
	*  セッションIDは定期的に更新する
	*  セッションIDが更新され有効期限切れとなったセッションIDに対するアクセスを検出する
	*  不必要にセッションIDを暴露しない
	*  セッションIDを重要なイベント発生時に更新する…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 07 Mar 2016 11:19:12 +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>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 26 Oct 2017 06:39:07 +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%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89?rev=1457351160&amp;do=diff</link>
            <description>ファイルアップロード

	*  可能ならドキュメントルート以下のディレクトリへのアップロードは避ける
	*  ドキュメントルート以下のディレクトリにアップロードする場合はPHPエンジンを無効化する</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 07 Mar 2016 11:46:00 +0000</pubDate>
        </item>
        <item>
            <title>ロック</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/%E3%83%AD%E3%83%83%E3%82%AF?rev=1457348737&amp;do=diff</link>
            <description>ロック

	*  ロックを行う場合はロックとロック解除を同じ順序にしてデッドロックを防ぐ</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 07 Mar 2016 11:05:37 +0000</pubDate>
        </item>
        <item>
            <title>例外とエラー</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/%E4%BE%8B%E5%A4%96%E3%81%A8%E3%82%A8%E3%83%A9%E3%83%BC?rev=1457348790&amp;do=diff</link>
            <description>例外とエラー

	*  エラー／例外を無視しない
	*  機密情報をエラー／例外から暴露しない
	*  ログを行っている間はエラー／例外を発生させない
	*  メソッドの例外が発生した場合、オブジェクトを以前の状態に復元する
	*  finallyから突然戻らない
	*  finallyで補足した例外をfinallyブロックから逃さない
	*  適切なHTTPエラーコードとエラーページを返す
	*  Webアプリケーションでは無用な遅延を作ってはならない…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 07 Mar 2016 11:06:30 +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>anonymous@undisclosed.example.com (Anonymous)</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/%E5%87%BA%E5%8A%9B?rev=1499131844&amp;do=diff</link>
            <description>出力

安全な出力には３つの方法がある

出力の３原則

	*  エスケープ - 出力先のシステムが誤作動しない確実に安全な形式にエンコーディングする
	*  安全なAPI - 出力先のシステムが誤作動しない</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 04 Jul 2017 01:30:44 +0000</pubDate>
        </item>
        <item>
            <title>実行環境</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/%E5%AE%9F%E8%A1%8C%E7%92%B0%E5%A2%83?rev=1457382499&amp;do=diff</link>
            <description>実行環境

	*  運用環境には開発用／テスト用のコードを含めない
	*  PHPが実行されるプロセスの最大メモリ使用量に現実的な値を設定する
	*  Webサーバーと一緒に利用する場合、セキュリティ設定を確実にする
	*  CLIサーバーをプロダクション環境で利用しない</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 07 Mar 2016 20:28:19 +0000</pubDate>
        </item>
        <item>
            <title>宣言と初期化</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/%E5%AE%A3%E8%A8%80%E3%81%A8%E5%88%9D%E6%9C%9F%E5%8C%96?rev=1457401263&amp;do=diff</link>
            <description>宣言と初期化

	*  セキュリティ重要な情報をソースコード中に埋め込まない
	*  global宣言された変数を参照として利用しない
	*  foreach文の変数に参照を利用しない(PHP5)
	*  foreach文の変数に参照を利用した場合、unsetする(PHP7)
	*  参照に参照を代入しない
	*  PHPが利用する可能性がある名前をクラス名／メソッド名／関数名／定数名／変数名／配列要素名に利用しない</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 08 Mar 2016 01:41:03 +0000</pubDate>
        </item>
        <item>
            <title>数値型と操作</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/%E6%95%B0%E5%80%A4%E5%9E%8B%E3%81%A8%E6%93%8D%E4%BD%9C?rev=1458350517&amp;do=diff</link>
            <description>数値型と操作

	*  整数値のオーバーフローを検出／防止する
	*  任意精度型が必要な場合はGMP整数を利用する
	*  外部入力の整数データを無闇にキャストしない
	*  データ型を指定する場合はデータの表現可能範囲に注意する
	*  浮動小数点型の等価比較は行わない
	*  浮動小数点型と文字列表記の浮動小数点型の等価比較は行わない
	*  外部データソースの整数型の値を破壊しない
	*  浮動小数点型の変数をループカウンタに利用しない
	*  NaNとの比較は行わない
	*  配列の添字に浮動小数点を利用しない
	*  正確な演算が必要な場合に浮動小数点型を利用しない…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 19 Mar 2016 01:21:57 +0000</pubDate>
        </item>
        <item>
            <title>文字列型と操作</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/%E6%96%87%E5%AD%97%E5%88%97%E5%9E%8B%E3%81%A8%E6%93%8D%E4%BD%9C?rev=1457402970&amp;do=diff</link>
            <description>文字列型と操作

	*  文字列化した浮動小数点型のデータとの比較は行わない
	*  文字列型がバイナリ型であることを認識する
	*  文字列のオフセット指定には{}を使用する
	*  マルチバイト文字列に対してシングルバイト文字列関数を利用しない
	*  不正な文字エンコーディングは許可しない
	*  利用する文字エンコーディングを統一する
	*  エスケープ処理にはコンテクストに適合したエスケープ処理を行う
	*  文字列変数を文字リテラルに埋め込む場合は{}を利用する…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 08 Mar 2016 02:09:30 +0000</pubDate>
        </item>
        <item>
            <title>暗号</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/%E6%9A%97%E5%8F%B7?rev=1498736372&amp;do=diff</link>
            <description>暗号

	*  ハッシュ値取得に文字列連結をしない
	*  HKDFハッシュ値取得には必ずsaltを利用する
	*  セキュリティが必要な機能には安全な疑似乱数生成器を利用する</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 29 Jun 2017 11:39:32 +0000</pubDate>
        </item>
        <item>
            <title>表現</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/%E8%A1%A8%E7%8F%BE?rev=1457316346&amp;do=diff</link>
            <description>表現

	*  if文などの条件となる表現に代入を利用しない
	*  文字列連結と数値演算を利用する場合は()を利用する
	*  タイプジャグリングによる不正なデータ型の演算を許可しない
	*</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 07 Mar 2016 02:05:46 +0000</pubDate>
        </item>
        <item>
            <title>関数とメソッド</title>
            <link>https://php-secure-coding.ohgaki.net/doku.php/ja/rule/%E9%96%A2%E6%95%B0%E3%81%A8%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89?rev=1457383976&amp;do=diff</link>
            <description>関数とメソッド

	*  余分なパラメータを渡さない
	*  引数をバリデーションする
	*  assert()をバリデーションに利用しない
	*  セキュリティチェックを行うメソッドはfainalかprivateで宣言する
	*  隠蔽されたメソッド・プロパティへのアクセス性を拡張しない
	*  スーパークラスのメソッドを隠すメソッドを定義しない
	*  性能目的でパラメータ・戻り値を参照渡しにしない
	*</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 07 Mar 2016 20:52:56 +0000</pubDate>
        </item>
    </channel>
</rss>
