私の Web サイトは 1 か月前に攻撃され、今日 360 から脆弱性検出レポートを受け取りました。なんと、360 はまだこのようなことを行っているのですか?
SQL インジェクション
脆弱性リンク 1:
http://xxx.com:80/index.php?alias=message&action=comment?comment-diary-id=1&comment-ip=182.118。 33.8&comment-author=88888&comment-email=hacker@hacker.org&comment-url=http: //www.hacker.org/&comment-text=88888&comment-submit=SEND&comment-parent=0 RLIKE (SELECT (CASE WHEN (4725=4725) ) THEN 0 ELSE 0x28 END))
脆弱性リンク 2:
http://xxx.com:80/index.php?alias=message' AND SLEEP(5)
# 脆弱性リンク 3:
http://xxx.com:80/index.php?cat=note' AND 'dSob'='dSob
xss
脆弱性リンク:
http://xxx.com:80/admin/login.php?req_url=/admin/index.php"><script>alert(42873) )</script>
データベースへの書き込み時に addslashes を使用しても挿入されるのはなぜですか?注入するにはリンク 1 とリンク 2 を組み合わせる必要がありますか?
2 番目の脆弱性に関しては、それを防ぐ方法がわかりません。
サイトのセキュリティに関する詳細な調査は行っておりません。これがどのように達成されるのか、また抜け穴を修正する方法を分析していただきたいと思います。ありがとうございます。
データベースにコードを書き込む必要がある場合は、投稿します。
PS、リンクを書くとsfによって自動的に短縮されるため、http:
の後にスペースが追加されます。
デバッグ後、実際に注入できます...SQL についてまだ十分に理解していません
データベースに書き込まれる最終ステートメントは次のとおりです:
リーリー最後の文の意味を聞きたいです
リーリーPHP中文网2017-06-13 09:24:07
xss ネストされた HTML スクリプト コード、パラメーターは HTML エンティティに変換される必要があります。関数htmlspecialchars
接続 1 は、mysql のキーワードを入力して mysql を実行することです。ここで、キーワードをフィルタリングする必要があります。
もちろん、インジェクションを防ぐ最善の方法は前処理を使用することです。 ! ! !
PHP中文网2017-06-13 09:24:07
SQL ステートメントを結合する代わりに、パラメーター化されたクエリを使用することが最善です。
xss はパラメータ フィルタリングを通じて <script>
のようなスクリプト コードをフィルタリングできます。