3

私はこの種のことを経験していないので、以下のコードを使用した場合、MS SQL インジェクション攻撃などから安全でしょうか?

' OPEN DATABASE
dim objConn,objRS,objTRS,objUnit

Set objConn = Server.CreateObject("ADODB.Command") 
objConn.ActiveConnection = "Driver={SQL Server};Server=MSSQLSrv;Database=DbTest;UID=blablabala;PWD=blablabala"

strQuery = "SELECT USERNAME,PASSWORD from CUSTOMERS where EMAIL=?"
objConn.CommandText=strQuery 
objConn.Parameters(0) = Request.QueryString("email")
SET objRS = objConn.execute(strQuery)
4

1 に答える 1

1

パラメータ化を使用することで、SQL インジェクションから保護します。

しかし、クロス サイト スクリプティング攻撃から保護することはできません。

さらに、ユーザーパスワードをプレーンテキストで保存するのではなく、データベースでハッシュし、ハッシュとの一致を確認する必要があります。

また、Web サイトがselect顧客テーブルに対して実行できるようにしても、データは特に安全ではありません。Web サーバーが侵害された場合、データも侵害されます。この脆弱性を軽減する 1 つの方法は、コードで生の SQL ではなくストアド プロシージャを使用することです。

(そして、正気と将来の雇用可能性のために、従来の ASP から .Net に移行することをお勧めします:))

于 2012-08-21T15:26:49.317 に答える