パケットがキャプチャされた場合、またはアプリによって送信されたデータが変更された場合に、セキュリティを向上させ、XSS 攻撃や SQL インジェクションを防ぐ方法。
パケットがキャプチャされた場合、またはアプリによって送信されたデータが変更された場合に、セキュリティを向上させ、XSS 攻撃や SQL インジェクションを防ぐ方法。
これは、アプリが HTML5 に埋め込まれているかどうかとは関係ありません
API インターフェイスを使用して xss と SQL インジェクションを保存します
(1) サーバーが手動で攻撃された場合、それをどのように分析して解決しますか?
1 まず Windows/Linux のシステム ログをチェックして、ハッカーが攻撃によってサーバーのアクセス許可を取得したかどうかを確認します。サーバーに Gotshell がある場合、現時点で脆弱性を修正しても役に立たないからです。
Mysql インジェクション分析ソリューション
1 脆弱性メソッドを分析して見つける
(プログラムエントリでログファイルを書き込む) apache/nginx/iis ログファイル、つまりすべての POST および GET リクエストとパラメーターを分析し、送信されたリクエストに mysql キーワードが存在するかどうかを確認しますパラメータ
(ファイル全体 mysql キーワード Union/select/and/from/sleep を検索します)。存在する場合は、リクエスト アドレスに対応する PHP ファイルと、対応する PHP コードおよび MySQL 実行ステートメントを探します。次に、Web ディレクトリ フォルダー全体とテキストの作成時刻と変更時刻を調べて、バックドアがあるかどうかを確認します。
2 予防策
1 プログラムにグローバル SQL キーワード フィルタリングを追加します
2 PHP の一重引用符エスケープを有効にします (php.ini magic_quotes_gpc を変更します)。
3 Apache/nginx/iis はサービスログ、mysql スロークエリログ、およびプログラムエントリレコードリクエストログを有効にします
4 サーバーはセキュリティドッグなどの Web アプリケーションセキュリティソフトウェアをインストールします
5 gbk double を防ぐためにデータベースリンクに UTF-8 を使用します-バイトインジェクション
6 機能強化 mysql パスワードの複雑さ、mysql 外部リンクの禁止、およびデフォルトのポート番号の変更
7 プログラム mysql アカウントの権限を削減し、通常の追加、削除、確認、および変更の権限のみを付与します。ファイル操作権限を与えることは禁止されています
XSS クロスサイト攻撃の解決策
1 htmlspecialchars を使用してテキストが書かれている場所をエスケープする
2 SSL を使用して外部 js の読み込みと参照を禁止する
3 httponly を設定して Cookie の取得を禁止する
4 上記は、インジェクションがないことを保証するためのものです (場合インジェクションがあり、16 進数を使用して htmlspecialchars をバイパスして xss 攻撃の効果を実現できます)
5 バックエンドとフロントエンドに異なるルーティング ルールを持つ 2 セットのプログラムを使用するのが最善です。主要なバックエンド操作 (バックアップ データベース) を設定する必要があります。セカンダリ パスワードを追加し、CSRF を防ぐために複雑なリクエスト パラメーターを追加します
PHPセキュリティ
1 ファイルがアップロードされる場所にサフィックスフィルタリングを追加し、フィルタリング時に「論理否定」の判断を行わないようにします。
2 拡張子 php および htaccess を含むファイルをアップロードすることは禁止されています。ファイル名の拡張子を取得するためにクライアントによって送信されたデータを使用しないでください。拡張子とランダムなファイル名を追加するプログラムを使用する必要があります。
3 統一ルーティングを使用して制限します。不正アクセス
4 PHP 剥奪処理、Web ディレクトリはフォルダーとテキストの作成を制限します (プログラムに必要なフォルダーを除き、通常は書き込み権限を必要とするキャッシュ ディレクトリがあります)
5 IIS/nginx ファイル解析の脆弱性のエクスプロイトをフィルターします
6 携帯電話の確認コードを使用してパスワードを取得します。メールボックスの取得には追加のサーバーを使用する必要があります。 (パスワード取得機能を通じて実際の IP が取得されないようにします)。ユーザーのメールボックスに送信されるパスワードをリセットするための最後のリンクには、複雑な暗号化パラメーターが必要です。
7 ユーザー ログイン システムには、単一のログイン機能が必要です。ユーザーがログインしている場合、他のユーザーには再度ログインするように求められます。
8 ウェブルート ディレクトリには、外部防御用の Index.php (エントリ ファイル) を 1 つだけ含めることができます。他のすべてのディレクトリは、nginx でのアンチホットリンク機能を備えています。
1 Web アプリケーションはサイト ライブラリの分離を使用し、環境の Web ディレクトリのデフォルト パスを変更します。
2 統合環境を使用する場合は、インストールが完了した後、phpmyadmin および phpinfo だけでなく php プローブも削除する必要があります (プローブは Web パスを表示でき、phpmyadmin は激しくクラッキングされる可能性があります)
2 ユーザーパスワードは、パスワードソルティング後の md5 値を使用するのが最善です
3 ユーザーがログインする場所に確認コードを追加し、エラー数の制限を追加する方法ブルートフォースクラッキングを防ぐため
4 CDN アクセラレーションを使用して実際の IP を非表示にする
5 ユーザーがログインするとき、C 側のスニッフィングを防止し、ARP スプーフィングを通じてユーザーと管理者の平文アカウントとパスワードを取得するために、平文のアカウントとパスワードを渡さないでください。
6 PHP システムコマンドライン番号 exec、system などを無効にします。
7 Security Dog などのセキュリティソフトウェアをサーバーにインストールします。
8 Web ディレクトリに .rar および zip ファイルを保存することは禁止されています