ホームページ  >  記事  >  バックエンド開発  >  PHP プログラミングのセキュリティ上の注意事項

PHP プログラミングのセキュリティ上の注意事項

WBOY
WBOYオリジナル
2016-07-25 08:59:061015ブラウズ
  1. register_global = off
  2. magic_quotes_gpc = off
  3. display_error = off
  4. log_error = on
  5. #allow_url_fopen = off
  6. expose_php = off
  7. open_basedir =
  8. safe_mode = on
  9. disable_function = c 、escapeshellarg、escapeshellcmd ,proc_close,proc_open,dl,popen,show_source,get_cfg_var
  10. safe_mode_include_dir =
コードをコピー
2, DB SQL 前処理 mysql_real_escape_string (多くの PHPer は SQL インジェクションを防ぐために依然として addslashes に依存していますが、この方法は中国語のエンコードでは依然として問題があります。addslashes の問題は、ハッカーが一重引用符の代わりに 0xbf27 を使用できることです。0xbf27 は GBK エンコードでは有効な文字ではないため、addslashesは単なる 0xbf5c27 であり、有効なマルチバイト文字になります。0xbf5c は依然として一重引用符として扱われます)。 mysql_real_escape_string 関数を使用する場合は、正しい文字セットを指定する必要もあります。指定しないと問題が発生する可能性があります。

準備+実行(PDO) ZendFramework では、mysql のみに使用できる mysql_real_escape_string とは異なり、DB クラスの quote または quoteInto を使用できます。

3. ユーザー入力の処理 HTMLタグを保持する必要がない場合は、次の方法を使用できます。 ストリップタグ、文字列内のすべての HTML タグを削除します htmlspecialchars、「

」、「;」、「'」文字のみをエスケープします htmlentities、すべての HTML をエスケープします HTML タグを保存する必要がある場合は、次のツールを検討してください。

  1. HTML Purifier: HTML Purifier は、PHP で書かれた標準準拠の HTML フィルター ライブラリです。
  2. PHP HTML Sanitizer: HTML コードから安全でないタグと属性を削除します
  3. htmLawed: HTML を浄化およびフィルターするための PHP コード
コピーコード
4、ファイルをアップロード HTTP_POST_FILES[] 配列を使用して、is_uploaded_file 関数と move_uploaded_file 関数を使用します。また、アップロード ディレクトリの PHP 解釈機能を削除することで、ユーザーが PHP スクリプトをアップロードできないようにします。 ZF フレームワークで File_upload モジュールの使用を検討できます。 セッション、Cookie、フォームの安全な処理 コア認証には Cookie に依存しないでください。重要な情報は暗号化する必要があり、送信データはフォーム ポストの前にハッシュする必要があります。 たとえば、送信される form 要素は次のとおりです。

  1. input type="hidden" name=" H[年齢]" value=""/>
  2. POST から戻った後にパラメータを確認する
  3. $str = "";
  4. foreach ($_POST['H'] as $key=>$value) {
  5. $str .= $key.$value;
  6. }
  7. if($_POST['hash'] != md5($str.$secret )) {
  8. echo "隠しフォームデータが変更されました"; exit;
  9. }
コードをコピー
5、PHP セキュリティ検出ツール (XSS および SQL 挿入) Wapiti - Webアプリケーションセキュリティ監査(Wapiti - コンパクトサイト脆弱性検出ツール) (SQLインジェクション/XSS攻撃検出ツール)

6、インストール/使用方法:

  1. apt-get install libtidy-0.99-0 python-ctypes python-utidylib
  2. python wapiti.py http://あなたのウェブサイトのURL/ -m GET_XSS
コードをコピー
Pixy: XSSとSQLI Scanner for PHP (Pixy - PHP ソース コード欠陥分析ツール) インストール: apt-get install default-jdk

上記で紹介したセキュリティ対策を完全に実装できれば、PHP コードは非常に安全になります。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。