1

Google と stackoverflow で「オープン ソース」、「MySQL 拡張機能」、「非推奨」の組み合わせを検索しましたが、MySQL 拡張機能の非推奨を支援する回避策は見つかりませんでした。私が想像しているのは、まったく同じ入力を取り、結果をまったく同じ形式で出力するクラスまたは関数のセットですが、MySQL 拡張機能ではなく PDO を使用することです。他のオープンソースの回避策をいただければ幸いです。また、MySQL 拡張機能がいつ削除される予定なのかを誰かが正確に知っている場合は、本当に知りたいです。インターネットでそれを探しましたが、見つかりませんでした。

注: バインドされたパラメーターなどのセキュリティ機能を利用できるため、コードを書き直す方が優れていることを認識しています (新しいコードを作成するとき、または古いコードを書き直すときに、PDO とバインドされたパラメーターを使用して、それを置き換えることを意図しています)。ですから、ウェブサイトのコードの大部分は既にそこにあります) しかし、このウェブサイトにはまだ MySQL 拡張機能を使用している多くの古いコードを維持する必要があります。私が持っているよりもそれを変換します。私は職場で他の優先事項を与えられており、これを別のプロジェクトとして一度に行う時間が与えられると期待することは現実的ではありません. この機能が削除されても Web サイトが存続するようにするために、MySQL 拡張機能が削除された後も、すべての古いコードとオープン ソースが引き続き機能することを確認する必要があります。理論的には PHP の更新をオフにすることもできますが、そうするとセキュリティ リスクが発生する可能性があり、新しいコードを記述できるときに古いコードを書き続ける必要があります。後でこれを行う時間があるかどうかを待つこともできましたが、MySQL 拡張機能が削除される日付を見つけることができなかったので、ギャンブルのように感じます.

他に役立つ提案があれば、ぜひ聞いてみたいと思います。

PS 実際、私は MySQL の廃止についてマネージャーに話す予定であり、この質問をすることは私の準備プロセスの一部です。彼が最初に尋ねることは、「回避策を探しましたか?」ということです。私がノーと言えば、彼は私たちの選択肢をリストアップするために私を送り出すつもりです. さらに、彼は私たちが行うべきセキュリティ プロジェクトについて既にアドバイスを受けています。経済が安定しておらず、IT の需要が高まっていることを忘れないでください。当社の IT 部門は人手不足であり、優先順位を付けたすべてのことを実行するのに十分な時間がありません。見下すような感情はご遠慮ください。

4

3 に答える 3

0

コードが安全であれば、ライブラリが非推奨になることを心配する必要はありません。それらはまだ PHP から削除されておらず、おそらくしばらくは削除されないでしょう。それらが削除されると、それらは誰かによって外部ライブラリに入れられ、すべてのホストがインストールします。

書き換える理由はセキュリティです。つまり、コードがインジェクション防止であるかどうか確信が持てない場合であり、非推奨になっただけで一部の人が使用できないライブラリの非推奨ではありません。

于 2013-07-06T11:23:34.043 に答える
0

PHP/MySQL の質問に対する "mysql_ is deprecated" という定数のコメントに促されて調査を行ったときに、この質問を見つけました。これは、問題の解決にはほとんど役立ちません。

いつの日か mysql_ エクステンションが PHP から削除される可能性があります (まだ削除されていない場合)。また、パッチを適用してプラットフォームを最新の状態に保つこともお勧めします。したがって、ある日、コードが機能しなくなることはほぼ避けられません。

したがって、その影響を軽減する方法を計画する必要があります。

1 つの解決策は、対応する mysql_xxx() 関数の宣言で mysqli_xxx() 関数をラップすることです。次に、これらのマッピングを含むファイルをインクルードし、is_resource($mysql_handle). ここで利用可能なライブラリはそれを行い、シムの実装に関するいくつかの有用な指針を提供します。

他の方向から問題に取り組むことができれば素晴らしいでしょう - mysqli_xxx() として宣言された mysql_xxx() 関数の周りにラッパーを実装してください。すべての機能 (非同期クエリなど) を実装することはできませんが、1 対 1 のマッピングを持つものだけを実装することで、開発者は新しい API がプラットフォームで利用可能になる前に作成を開始できます。ただし、これの実装については知りません。

于 2016-03-22T14:49:17.390 に答える