ArcGIS Server 10.2 이상으로 업그레이드 후 REST 쿼리가 작동하지 않는 문제
1. 개요
날짜 필드에서 REST 쿼리를 수행할 때 ArcGIS Server 10.2 이상에서는 SEVERE 에러 메시지를 보고합니다.
“An invalid where clause or definition expression has been requested.”
2. 원인
ArcGIS Server 10.2부터 REST 또는 SOAP을 통해 지도, 기능, 이미지 및 WFS 서비스로 작업 할 때 개발자가 표준화된 SQL 쿼리를 사용하도록 하는 보안 옵션이 포함 되어 있습니다. 이렇게 하면 SQL 주입 공격을 막을 수 있으며 개발자와 응용프로그램이 ArcGIS Server 서비스를 보다 쉽게 쿼리 할 수 있습니다.
3. 표준화된 쿼리의 작성
아래의 링크를 통해 ArcGIS Server에서 지원되는 SQL 함수에 대해 확인 바랍니다.
4. 해결 방법
10.1에서 사용하던 방식으로 동일하게 쿼리를 사용할 수 있습니다. 응용 프로그램에서 데이터베스이 별 WHERE 절을 사용해야하는 경우 ArcGIS Server Administrator Directory에 액세스하여 표준화된 쿼리를 비활성화할 수 있습니다.
이 보안 옵션을 해제하게 되면 사이트가 SQL 공격에 취약해 집니다.
- Administrator Directory를 열고 사이트에 대한 관리 권한을 가진 사용자로 로그인 합니다. Administrator Directory는 다음 위치에서 사용 가능합니다:
http://gisserver.domain.com:6080/arcgis/admin
- System > Properties > Update를 클릭합니다.
- Operation – Update 페이지에서 System Properties 대화 상자에 다음 문자열을 입력합니다.
{“standardizedQueries”: “false”}
- Update를 클릭합니다.
- ArcGIS Server를 재시작 합니다.
출처: http://support.esri.com/en/technical-article/000011867