dポイントプレゼントキャンペーン実施中!

WEBサーバにクライアントマシンから1K以上の長文SQLを送信し、WEBサーバからデータベースサーバにアクセスしてSQLを実行しデータを取得したいと思います。

WEBサーバが1Kを超える長文SQLを受信することができません。
何が悪いのかわかりません。
WEBサーバがSQL文を受け、そこからDBサーバにアクセスする構造は変えたくありません。何かよい方法があれば教えてください。
お願い致します。

A 回答 (2件)

URLやURLのQueryStringにはWEBサーバーによって、MaxBufferとか


URLセパレーター間の文字数であるとかサイズ制限の設定値があり
ます。またブラウザ側にも発行できるサイズの制限があります。

どのように発行して何で取得しようとしているのかが不明ですが、
手法としては、XMLHTTPを使用して長文SQLはPOSTデータとして送信
します。
WEBサーバー側では、Requestオブジェクトを工夫してTextとして取得
してSQLとして発行します。
レコードセットはXMLでResponseに書き込みます。
クライアント側はPOST後のResponseTextを直接XMLとして見るか、
XMLDomDocument.LoadXml→Recordset.Open XMLDomDocument
として、通常のRecordsetに落とすことが出来ます。

ややこしそうですが、VBAやVBScriptの使えるプラットフォームなら
サーバー側・クライアント側ともに10数行のコードで実現できます。
(ちょっとしたテクニックは必要ですが…)

あと、少なくともセキュリティ上の配慮はないと危険です。
例えば、delee/drop/truncate/update/insert等が含まれていたら
実行しないとか、Querystringに暗号コードを含ませるとか…
    • good
    • 0

SQLインジェクションやバッファーオーバーフローのへの攻撃を考えるとWEBサーバーであまり長いSQL文を受け付けるのは危険でしょう。



セキュリティの対策はどうお考えですか
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!