0

基盤となるデータベースの詳細にWebサービスを作成したいと思います。

<cffunction name="getDBSchema" output="false" returnType="query" access="remote">


<cfquery name="local.qryPlugin" cachedwithin="#CreateTimeSpan(1,0,0,0)#">
    SELECT column_name, data_type, character_maximum_length, kcu.TABLE_SCHEMA, 
    kcu.table_name,ordinal_position, is_nullable 
    FROM information_schema.COLUMNS kcu
    ORDER BY table_name, ordinal_position
</cfquery>

<cfreturn local.qryPlugin>

cachedwithinを1日に設定しても、dbを強く叩く可能性があるのではないかと心配しています。また、脆弱性を導入しているのではないかと心配しています。DBスキーマ情報自体は機密情報ではありません

4

1 に答える 1

2

あなたは2つの具体的な質問をしました。1つは十分な1日のキャッシュであり、2つはこれがセキュリティの問題です。

1)1日のキャッシュは、十分すぎるようです。これは非常に長いキャッシュです。なぜそれで十分だと思わないのかわかりませんが、私には素晴らしいようです。

2)私はセキュリティの専門家ではありません。これは内部IP経由でのみアクセス可能であるとおっしゃっていたので、おそらくそれで十分ですが、なぜこれらの詳細を一般的に共有しているのかを自問したいと思うかもしれません。ユーザーは本当にこの情報を必要としていますか?

最後に、ColdFusionにはこれを行う<cfdbinfo>タグがあることを忘れないでください。あなたのコードは明らかに機能しますが、あなたが知らなかった場合に備えて、私はそれを共有しています。

于 2012-12-03T13:09:12.357 に答える