2012-12-02 4 views
0

기본 데이터베이스에 대한 일부 세부 사항에 대한 웹 서비스를 만들고 싶습니다.데이터베이스 스키마를 표시하는 ColdFusion Webservice

<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> 
I 수있는 cachedwithin 언젠가 설정도 함께, 나는 아직도 너무 세게 DB를 타격 할 수 있다는 우려. 저는 또한 취약성을 도입 할까 우려합니다. DB 스키마 정보 자체는 중요한 정보가 아닙니다.

+0

쿼리는 "데이터베이스를 때리는"관점에서 큰 의미가 없습니다. 데이터베이스 디자인을 해커에게 제공하는 것은 큰 문제입니다. 왜 이걸하고 싶니? –

+0

내부 DB 스키마에 대한 최신 문서를 제공하고 싶습니다. 그것이 표시되지 않지만, 웹 서비스는 제한된 수의 IP를 통해서만 액세스 할 수 있습니다 –

답변

2

두 가지 특정 질문을했습니다. 하나는 충분한 시간 동안 캐싱이고, 두 가지는 보안 문제입니다.

1) 하루 캐싱이 이상 이상인 것 같습니다. 엄청나게 긴 캐시입니다. 당신이 왜 그것이 충분할 것이라고 생각하지 않을 지 확신하지 못하지만, 그것은 나에게 위대해 보인다.

2) 저는 보안 전문가가 아닙니다. 내부 IP를 통해서만 액세스 할 수 있다고 언급 했으므로 아마도 충분할 것입니다.하지만 일반적으로 이러한 세부 정보를 공유하는 이유를 직접 물어볼 수 있습니다. 당신은 정말로이 정보가 필요합니까?

마지막으로 ColdFusion에는 <cfdbinfo> 태그가 있습니다. 귀하의 코드는 분명히 작동하지만, 모르는 경우에 대비해 공유하고 있습니다.

+0

나는 이 필요한 모든 데이터를 가져오고 그날의 데이터베이스에서 작동합니다. –

관련 문제