5

最近、Railsアプリケーションでさまざまな入力を使用して一連のテストを行ったところ、着信要求のnull文字の処理方法に問題があることがわかりました。私のアプリケーションはPostgresql8.4データベースに支えられています。Postgresqlは、標準の「text」または「varchar」フィールドへのヌル文字の格納をサポートしていないことがわかりました。ただし、レールを介してnull文字を含む文字列を格納しようとすると、デフォルトの動作では、null文字の後に文字列が切り捨てられているように見えます。文字列は切り捨てが発生する前に検証されるため、これは問題と見なされます。rubyはnull文字を完全に処理でき、切り捨ては挿入時にのみ発生するため、長さなどの検証はnull文字を挿入することでバイパスできます。

私はこれらの入力を処理する最良の方法を見つけようとしています。私にとって理想的な動作は、無効なUTF-8バイトを処理するときのようなどこかで例外をスローすることです。今のところ、私が考えることができる唯一のオプションは、すべての入力文字列にヌル文字がないか明示的にチェックすることです。私はむしろ一般化されたアプローチを望んでいますが、どこから始めればよいのかさえわかりません。これをチェックするためにpostgresqlアダプターにパッチを適用することはオプションでしょうか?それとも、私が見逃していた標準的なアプローチはありますか?

4

0 に答える 0