wiki:Contribute
 ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Version 12 (modified by takanashi, 13 years ago) (diff)

--

OpenPNEプロジェクト

開発者向けチャット(Skype3.0が必要)

目次


バグ報告

一般利用者のバグ報告は以下のtracでnewticketから登録してください。

開発者がバグ報告する場合、このtracを使用してhttp://trac.openpne.jp 新規チケットを作成してください。

"Short summary"欄は、その1行で大体のことがわかるような記述にしてください。

"Full description"欄には詳細で具体的な内容を記述してください。

SVNを使用している方は対象リビジョンを"r1234"のように記述してください。 使用されていない方は不具合の発生したOpenPNEのバージョンを記述してください。

その他の情報として、再現性、使用ブラウザ、PHP/MySQLのバージョンを記入してください。

上へ戻る


仕様書最新版

OpenPNE2.6概要仕様書

仕様書旧安定版

OpenPNE2.4概要仕様書

OpenPNE2.4テーブル定義書

OpenPNE2.4画面遷移図

上へ戻る


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
招待状発行時及び新規登録時に画像認証を挟むようにしている

上へ戻る


デザインガイド

OpenPNE2.6テンプレート仕様

上へ戻る


Subversion(SVN)利用法リンク

上へ戻る


パッチ提供者として協力する

パッチを送る

パッチを送るにはopenpne.jpにログインしてコアコミッタを見つけてください。
コミッタとコミュニケーションして、パッチを送付するようにしてください。

上へ戻る


ブランチコミッターとして協力する

レポジトリ

ブランチコミット権限

OpenPNEプロジェクトにプログラマとして参加するには、コードのパッチを送るのとブランチコミット権限をもらって、コードを提供する方法があります。コードのパッチは、メールなどで送付してください。

  • 3ヶ月に1度以上は最低コードをコミットする
  • 節度を持ってレポジトリを利用する
  • コミットしたコードに、他の著作物を混入しない(他のOSSからのコピペも禁止)

本線・ブランチコミッタ一覧


上へ戻る


本線コミッター

本線・ブランチコミッタ一覧


上へ戻る


OpenPNE本線へのコード受け入れ

OpenPNEプロジェクトでは開発者からのコードを本線に受け入れる際に以下の手順を踏む事とします。

  1. 開発者がsvnアカウント(ブランチコミット権)を持っていない場合、本線コミッタがsvnアカウントを発行する
  2. 開発者がコーディングを行い、各自の開発ブランチへコミットする
  3. OpenPNE本線に取り込むコードについて、本線コミッタがコードチェックと動作確認を行う(注1)
  4. バグがあったり、仕様を満たさないなど、コードに問題があった場合は、各自の開発ブランチで修正する
  5. コードチェック・動作確認済みのコードを元に本線コミッタがOpenPNE本線(trunk)へマージする

注1:OpenPNE本線に取り込むコード以外はチェックも動作確認もしない。

OpenPNE本線へのコード提供の合意事項

OpenPNE本線へのコード受け入れは、開発者が以下の規約に合意した場合にのみ実施します

  • 開発者は自身が書いたコードをPHPライセンスの下にOpenPNEプロジェクトに提供する
  • 開発者は自身が書いたコードのセキュリティについて責任を持つ
  • 開発者はOpenPNEプロジェクトに提供するコードについて、事前に本線コミッタのチェックを受ける
  • 開発者は自身が書いたコードを含むOpenPNEのリリース管理を本線コミッタに委任する

以上。

上へ戻る