Linux サーバーを使用して Web インターフェイスを SQL インジェクション攻撃から保護する
インターネットの発展に伴い、Web インターフェイスの使用はますます一般的になり、その使用量は増加しています。 Web アプリケーションの数 プログラムは SQL インジェクション攻撃の危険にさらされています。 SQL インジェクション攻撃は、Web アプリケーションでのサニタイズされていないユーザー入力を悪用して、データベースで悪意のある SQL ステートメントを実行する方法です。このようにして、攻撃者は機密データを取得したり、データベースの内容を変更したり、サーバーを完全に制御したりする可能性があります。
Web インターフェイスを SQL インジェクション攻撃から保護するために、Linux サーバーを使用して一連の防御手段を実装できます。この記事では、いくつかの一般的な防御方法を紹介し、対応するコード例を示します。
以下は、Python の Flask フレームワークを使用して実装されたサンプル コードです:
from flask import request, Flask import sqlite3 app = Flask(__name__) @app.route('/login', methods=['POST']) def login(): username = request.form['username'] password = request.form['password'] conn = sqlite3.connect('database.db') cursor = conn.cursor() # 使用参数化查询 cursor.execute('SELECT * FROM users WHERE username=? AND password=?', (username, password)) user = cursor.fetchone() if user: return '登录成功' else: return '用户名或密码错误' if __name__ == '__main__': app.run()
以下は、Python の Flask フレームワークを使用して実装されたサンプル コードです。
import re from flask import request, Flask app = Flask(__name__) @app.route('/search', methods=['GET']) def search(): keyword = request.args.get('keyword') if not re.match(r'^[a-zA-Z0-9]+$', keyword): return '关键字包含非法字符' # 执行查询操作 return '查询成功' if __name__ == '__main__': app.run()
たとえば、MySQL データベースでは、クエリと挿入の権限のみを持つアカウントを作成し、このアカウントを使用して動作するように Web アプリケーションを構成できます。
まず、ファイアウォール構成を使用して、信頼できる IP アドレスからのリクエストのみが Web インターフェイスにアクセスできるようにします。
第 2 に、HTTPS プロトコルを使用してデータ送信を暗号化し、データの盗聴による機密データの漏洩のリスクを防ぐことができます。
最後に、サーバーのオペレーティング システムと関連ソフトウェアをパッチで定期的に更新し、既知のセキュリティの脆弱性を修正することをお勧めします。
要約すると、Linux サーバーのさまざまな機能を利用して、Web インターフェイスを SQL インジェクション攻撃から保護できます。パラメータ化されたクエリ、入力検証とフィルタリング、権限の制限と安全なアカウントの使用、およびネットワーク セキュリティ設定の実装により、Web アプリケーションでの SQL インジェクション攻撃のリスクを大幅に軽減できます。ただし、セキュリティは継続的なプロセスであり、常に警戒し、防御を継続的に更新および改善する必要があります。
以上がLinux サーバーを使用した SQL インジェクション攻撃から Web インターフェイスを保護します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。