トップ  > OpenPNE2  > 開発ユーティリティ  > 記事

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

引用元

更新:2010/05/24 10:58 カテゴリ: OpenPNE2  > 開発ユーティリティ ▲トップ

FuelPHP

Mac

フロントエンド開発

web開発

プロマネ

マネタイズ

プレゼン

webサービス運用

webサービス

Linux

サーバ管理

MySQL

ソース・開発

svn・git

PHP

HTML・CSS

JavaScript

ツール, ライブラリ

ビジネス

テンプレート

負荷・チューニング

Windows

メール

メール・手紙文例

CodeIgniter

オブジェクト指向

UI・フロントエンド

cloud

マークアップ・テキスト

Flash

デザイン

DBその他

Ruby

PostgreSQL

ユーティリティ・ソフト

Firefox

ハードウェア

Google

symfony

OpenPNE全般

OpenPNE2

Hack(賢コツ)

OpenPNE3

リンク

個人開発

その他

未確認

KVS

ubuntu

Android

負荷試験

オープンソース

社会

便利ツール

マネー

Twig

食品宅配

WEB設計

オーディオ

一般常識

アプリ開発

Python

サイトマップ

うずら技術ブログ

たませんSNS

rss2.0