2014-11-05 2 views
1

저는 webapps에 익숙하지 않으므로이 질문이 순진하고 배우기를 원한다면 사과드립니다. 나는 자동 완성을 위해 elasticsearch를 사용하고있다. 내가 본 모든 예제는 가난한 연습처럼 보이는 사용자에게 elasticsearch URL을 노출하는 jquery/ajax/angularjs 형식을 보여줍니다. 서버 URL을 보호하는 적절한 방법은 무엇입니까? 아약스가 (간접적 인 경우에도) 전화를 걸 수 있습니까?탄성 검색을 보호하는 방법 아약스를 사용하는 경우

+0

모든 것이 눈에 띄지 않으며, 모든 것을 볼 수 있습니다. 디코드를 더 어렵게 만들 수 있습니다. 가장 좋은 방법은 elasticSearch url을 호출하고 결과를 반환하는 ajax로 자신의 서버를 호출하는 것입니다. elasticsearch URL을 보여주고 싶지는 않습니다. 서버 URL 만 표시됩니다. – juvian

답변

1

AJAX 세계에서는 서버 URL을 보호 할 수있는 방법이 없습니다. 그리고 그건 괜찮아. 어쨌든 모호함에 의한 보안은 좋은 습관이 아닙니다. 필요한 것은 서버가 해당 URL을 통해 해킹 당할 수 없는지 확인하는 것입니다. 몇 가지 팁 :

  1. ES에서 스크립팅을 사용하지 않도록 설정하십시오. 최신 버전의 ES에서는 기본적으로 즉시 사용하지 않도록 설정했습니다.

  2. 베어 ES 서버를 전세계에 노출시키지 마십시오. 기본적으로 ES는 포트 9200에서 사용할 수 있습니다. 즉 누구나 원하는 쿼리를 실행할 수 있습니다. 포트가 외부 액세스로부터 차단되었는지 확인하십시오. 한 의견 제시자는 Javascript가 서버를 호출해야하며 ES 서버를 localhost (다시 말하면 localhost : 9200이 외부 액세스로부터 차단되었는지 확인) 또는 방화벽 뒤에서 ES 서버를 호출해야합니다.

  3. 모든 입력 쿼리를 ES에 전달하기 전에 정리하십시오. 등

합리적인 뭔가 문자열 길이를 제한하기 위해, 등등과 : ES는 SQL에 "주입"공격보다 취약하지만 "은 \ {같은 불쾌한 문자를 필터링하는 것이 여전히 중요하다 행운을 빌어 요!

관련 문제