Version 13 (modified by 16 years ago) (diff) | ,
---|
OpenPNEプロジェクト
目次
- バグ報告
- 仕様書最新版
- 仕様書旧安定版
- OpenPNEのセキュリティ対策
- デザインガイド
- Subversion(SVN)利用法リンク
- パッチ提供者として協力する
- ブランチコミッターとして協力する
- 本線コミッター
- OpenPNE本線へのコード受け入れ
- OpenPNE本線へのコード提供の合意事項
バグ報告
一般利用者のバグ報告は以下のtracでnewticketから登録してください。
開発者がバグ報告する場合、このtracを使用してhttp://trac.openpne.jp 新規チケットを作成してください。
"Short summary"欄は、その1行で大体のことがわかるような記述にしてください。
"Full description"欄には詳細で具体的な内容を記述してください。
SVNを使用している方は対象リビジョンを"r1234"のように記述してください。 使用されていない方は不具合の発生したOpenPNEのバージョンを記述してください。
その他の情報として、再現性、使用ブラウザ、PHP/MySQLのバージョンを記入してください。
仕様書最新版
仕様書旧安定版
OpenPNEのセキュリティ対策
- *XSS(Cross Site Scripting)
- DB、リクエストから取得した値を表示する際にはHTML生成前に デフォルトで全てサニタイズされるようにしており、 管理画面から管理者が入力した項目など信頼できる一部の値のみを そのまま表示するようにしている
- *SQL Injection
- 変数が含まれるSQL文はプレースホルダを使用し エスケープ処理を行っている
- *CSRF(Cross Site Request Forgeries)
- データ登録・編集などdoアクションのすべてのリクエストに セッションIDに基づいたハッシュ値(セッションIDそのものではない) を含めて、これが一致しない場合にはアクションを行わない
- *Null Byte Attack
- リクエストバリデーションの際に、事前のフィルタリングで 全変数デフォルトでヌルバイトを削除している
- *Directory Traversal
- ローカルファイルをオープンする場合には /などを含む文字列は弾いている
- *HTTP Response Splitting
- リダイレクトのためのLocationヘッダなど、 スクリプト側で動的にHTTP Response Headerを生成する場合には 不要なCRおよびLFを除去している
- *Session Hijacking
-
携帯版を除きセッションIDの取得はCookieからのみに制限している
また、セッションの有効期限をpc/ktai/adminそれぞれに設定できる
携帯版については、GET(/POST)でセッションIDを引き回すため URLにセッションIDが含まれてしまうが、Refererで外部に漏れないよう 外部サイトへのリンクを一切生成しないようにしている また、デフォルトでセッションの有効期限を短く設定している
- *Session Fixation
- pc/ktai/admin ともにログイン時に、その時点のセッションIDを無効にして 新しいセッションIDを生成している
- *File Upload Attack
- アップロードファイルは画像のみに限定し、 アップロード時に必ずGDに通し画像として変換できたもののみを 正当な画像として受け入れている
- *OS Command Injection
- 外部コマンドを実行する関数は一箇所だけで、 画像変換にImageMagickを使用する設定にしていた場合にのみ passthru()関数を使用するが、 引数として渡すコマンドは検証済みのもので リクエストを直接入れるようなことはしていない
- *Parameter Manipulation
- 入力バリデータに通し検証済みの値を使用している
- *Brute force attack
- 招待状発行時及び新規登録時に画像認証を挟むようにしている
デザインガイド
Subversion(SVN)利用法リンク
- svn の使い方
- svn の使い方 - 差分の確認
- svn の使い方 - パッチの作り方
- svn の使い方 - パッチの作り方 #2
- svn の使い方 - 履歴の確認
- svn の使い方 - 更新
- svn の使い方 - デバッグブランチからのソースの取得
パッチ提供者として協力する
パッチを送る
パッチを送るにはopenpne.jpにログインしてコアコミッタを見つけてください。
コミッタとコミュニケーションして、パッチを送付するようにしてください。
ブランチコミッターとして協力する
レポジトリ
- https://trac.openpne.jp/svn/
- ブランチコミット権限では https://trac.openpne.jp/svn/branches/ 以下のみコミット可能
- このディレクトリ以下に/branches/tejima/等を作成して、利用してください。
- ID / PASS 手嶋屋スタッフが発行
- 利用方法 http://tortoisesvn.bluegate.org/Help/dailyuseguide.html このあたりを参照
ブランチコミット権限
OpenPNEプロジェクトにプログラマとして参加するには、コードのパッチを送るのとブランチコミット権限をもらって、コードを提供する方法があります。コードのパッチは、メールなどで送付してください。
- 3ヶ月に1度以上は最低コードをコミットする
- 節度を持ってレポジトリを利用する
- コミットしたコードに、他の著作物を混入しない(他のOSSからのコピペも禁止)
本線コミッター
OpenPNE本線へのコード受け入れ
OpenPNEプロジェクトでは開発者からのコードを本線に受け入れる際に以下の手順を踏む事とします。
- 開発者がsvnアカウント(ブランチコミット権)を持っていない場合、本線コミッタがsvnアカウントを発行する
- 開発者がコーディングを行い、各自の開発ブランチへコミットする
- OpenPNE本線に取り込むコードについて、本線コミッタがコードチェックと動作確認を行う(注1)
- バグがあったり、仕様を満たさないなど、コードに問題があった場合は、各自の開発ブランチで修正する
- コードチェック・動作確認済みのコードを元に本線コミッタがOpenPNE本線(trunk)へマージする
注1:OpenPNE本線に取り込むコード以外はチェックも動作確認もしない。
OpenPNE本線へのコード提供の合意事項
OpenPNE本線へのコード受け入れは、開発者が以下の規約に合意した場合にのみ実施します
- 開発者は自身が書いたコードをPHPライセンスの下にOpenPNEプロジェクトに提供する
- 開発者は自身が書いたコードのセキュリティについて責任を持つ
- 開発者はOpenPNEプロジェクトに提供するコードについて、事前に本線コミッタのチェックを受ける
- 開発者は自身が書いたコードを含むOpenPNEのリリース管理を本線コミッタに委任する
以上。