1

PHP 4を実行し、FreeTDSを介してMSSQL2000データベースと通信する古いシステムでメンテナンス作業を行っています。私は知っています、それはすでにいくらか怖いように聞こえます!

多くのコードは、SQLクエリを生成するために安全でない文字列連結を使用していました。私は物事をより安全にするために入力をフィルタリングするためにいくつかの作業を行いましたが、それは私に頭痛の種を与えています。

現在の設定で適切なパラメータ化されたクエリを実行できるものがあるかどうか疑問に思っていますか?この時点で、PHPまたはMSSQLのバージョンを変更することはできません。

4

2 に答える 2

1

それらを提供するMDB2のようなデータベース抽象化レイヤーを使用します。

于 2009-04-23T20:15:00.650 に答える
1

パラメータ化されたクエリの主な関心がSQLインジェクションの安全性である場合、機能を提供し、純粋なPHPで記述されたデータベース抽象化レイヤーを探します。私はADOdbを使用しましたが、それはまともなオプションですが、ダウンロード可能な古いPHP4バージョンがまだあるようです。

これに対する唯一の注意点は、抽象化レイヤーがデータベースに対して「適切な」パラメーター化されたクエリを実行しない可能性があることです。つまり、独自のパラメータ化エンジンを実装してから、完全なSQL文字列をデータベースに送信した可能性があります。「適切な」パラメータ化されたクエリはパフォーマンスを大幅に向上させる可能性があるため、これはMSSQLServerでは重要です。

于 2009-04-23T22:14:52.327 に答える