Webアプリケーションは、SQLインジェクションなどの新しいクラスのコンピューターセキュリティの脆弱性を彼らにもたらしました。これは、入力検証ベースの脆弱性のクラスです。 SQLインジェクションの典型的な使用データベースからの機密情報、バイパス認証ロジック、またはデータベースに不正なアカウントを追加します。このセキュリティにより、データベースへの不正アクセスが防止され、適切なアクセス許可なしにユーザーがデータが変更または削除されるのを防ぎます。悪意のあるテキスト検出器、制約検証、クエリの長さの検証、およびテキストベースのキージェネレーターは、SQLインジェクション攻撃がデータベースにアクセスするのを検出および防止するために使用される4種類のろ過技術です。
Ubuntuでこのプロジェクトを行っています
セキュリティのレベルを上げるために、プロキシサーバーでのSQLインジェクションを検出します。 Nginxはより速く、使いやすいため、プロキシサーバーとして使用します。当社のWebアプリケーションはApacheサーバーで実行されます。
したがって、ブラウザからのトラフィックがNginxサーバーに来るので、ポートを構成します
リポジトリから/etc/nginx/sites-enabledにwebproxyファイルを追加します。
nginxのサイト対応にWebProxyを追加します。ここでは、Nginxサーバーを介してHTTPトラフィックをポート8080にルーティングしました。
次に、HTTPサービスのPort of Apache Serverを更新します。 /etc/apache2/ apache2のこのリポジトリからのports.confファイルを更新します000-default.confファイルは/etc/apache2/sites-enabledのこのリポジトリのファイルを更新します。
このリポジトリからhtmlフォルダーを/var/www/フォルダーに置き換えます。 bank.sqlを実行してmysqlでデータベースを作成します(mysql:username:root password:root)
ここでは、銀行申請を追加しました
service nginx start
service apache2 startNginxサーバーがポート番号で構成されているかどうかを確認します。 80およびApacheサーバーはポート番号で構成されています。 8080。
localhost:8080/bank/login.htmlに進みます。ユーザー名をaaとして入力し、パスワードを'または' y '=' yとして挿入します
これで、データベース全体を見ることができます。
localhost/bank/login.htmlに進みます。ユーザー名をaaとして入力し、パスワードを'または' y '=' yとして挿入します
これで、データベース全体が表示されず、別のクエリで挿入することもできません。
ユーザー資格情報が脆弱性システムに入力されると、それらはデータベースソフトウェアに直接渡されます。ただし、Proxy ServerなどのWebアプリケーションに到達する前に入力検証を提供すると、Apacheサーバーの負担を軽減し、より速いNginxサーバーで効率的に処理できます。
そのため、SQLインジェクション攻撃に使用されるすべてのMySQLキーワードをまとめて、すべての入力が検証され、攻撃をチェックするようにウェイトを割り当てました。
そのようなSQL注射攻撃は防止されます。
著者および作成者:ジェイアントレーン