2012-05-28 2 views
0

고유 한 AJAX API (2)를 사용하여 웹 응용 프로그램을 빌드 한 API (1)가 있습니다. 그 이유는 소스 API를 드러내는 것이 아니기 때문입니다. 그러나 웹 응용 프로그램은 AJAX (AJAX를 통해)를 사용하여 AJAX API에서 새 데이터를 가져오고 검색된 데이터는 현재 XML로되어 있습니다. 최근 인증 알고리즘을 사용하여 기본 API (1)를 확보했습니다. 그러나 웹 응용 프로그램도 보안을 유지하여 파싱 할 수 없습니다. 현재 XML을 반환하는 AJAX API를 호출하는 데 사용되는 해시를 파싱 중입니다.AJAX API 보안

내 질문 : 보안을 강화하고 다른 사람들이 내 웹 응용 프로그램을 구문 분석 할 수있는 가능성을 줄이려면 어떻게해야합니까? 내가 가진 유일한 아이디어는 다음과 같습니다. XML 전송을 중지하고 대신 HTML을 보냅니다. 플래시를 사용하십시오 (그러나 이것은 옵션이 아닙니다).

사이트가 공개되어 로그인 할 수 없으므로 봇 (정당하지 않은 사용자)에 대한 액세스를 거부하기가 어려울 수 있습니다.

편집
내가 말하는거다 웹 응용 프로그램) 또한, 플래시는 ... 그것은 결코 옵션이 아니다 : https://bikemap.appified.net/

+2

"웹 응용 프로그램도 보호하여 파싱 할 수 없습니다."--- 불가능합니다. 브라우저가 뭔가를 보여줄 수 있다면 - 브라우저가 작동하는 것과 매우 유사한 방식으로 구문 분석 될 수 있습니다. – zerkms

+2

또 다른 언급 : AJAX API는 일반적인 페이지와 다른 점이 전혀 없으며 동일한 방식으로 보안되어야합니다. – zerkms

+0

모든 것을 알고 있습니다. 처음에는 "API와 API가 있습니다 ..."라고 쓰면 읽기가 혼란 스럽습니다. 둘째, 나는 "사이트가 공개되어 로그인이 구현 될 수 없기 때문에 봇에 대한 액세스를 거부하기가 어려울 수 있음을 알고 있습니다."라고 말하면서 두 점 모두를 이해합니다. –

답변

2

이 다소 이상한 요청입니다; 당신은 자신의 웹 애플리케이션이 작동하기 위해 의존하는 시스템을 잠그고 싶습니다. 이것은 거의 항상 재앙을위한 처방입니다.

웹 응용 프로그램은 항상 제거되어야하므로 실제 보안은 서버에서 발생해야합니다. 터프 팅, 세션 토큰, 스로틀 링 등등.

이미 설치된 경우, 내 웹 응용 프로그램에서 농구를 통해 점프해야하는 이유가 보이지 않습니다. 인간과 로봇을 분리하십시오 ;-)

$.ajax 기능을 발신 요청에 서명 할 수있는 코드 (또는 어떻게 든 필드를 추가 할 수있는 코드)로 감싸는 것입니다 ... 그런 다음 해당 코드를 축소/모호하게하고 너무 빨리 디코딩되지 않기를 바랍니다.

+0

나는 그것을 가지고 있으며, 그것은 이미 자리에있다. 기본 API는 iOS 및 Android 애플리케이션에 사용됩니다. 웹 애플리케이션은 그 위에 레이어를 만듭니다. –

+0

@PaulPeelen 그런 다음 웹 응용 프로그램에 권한을 추가하지 않는 이유는 무엇입니까? –

+0

사용자는 매일 일반 소비자이기 때문에. 이 서비스는 개인 서비스가 아니며 로봇의 비공개 서비스이며 법률 고지가 도움이되지 않습니다. –