문제

내 서버에 업데이트를 다시 게시하기 위해 jquery ajax를 사용하고 있습니다.내 AJAX 호출만 데이터를 게시할 수 있도록 적절한 조치를 취했는지 확인하는 것이 걱정됩니다.

내 스택은 MySQL 백엔드에 대한 Apache의 PHP입니다.

조언을 주셔서 감사합니다!

도움이 되었습니까?

해결책

페이지의 AJAX 호출이 수행할 수 있는 모든 요청은 애플리케이션 외부의 누군가가 수행할 수도 있습니다.제대로 수행되면 웹앱에서 AJAX 호출의 일부로 수행되었는지 아니면 직접/다른 방법으로 수행되었는지 알 수 없습니다.

AJAX 호출만 데이터를 게시할 수 있는지 확인하고 싶을 때 이야기할 수 있는 두 가지 시나리오가 있습니다.악의적인 사용자가 다른 사용자의 데이터를 방해하는 데이터를 게시하는 것을 원하지 않거나 실제로 게시물이 다중 요청 작업의 "흐름"에 있도록 제한하려고 합니다.

첫 번째 경우(누군가가 다른 사용자에게 악의적인 데이터를 게시하는 경우)에 대해 우려하는 경우 AJAX를 사용하든 사용하지 않든 솔루션은 동일합니다. 필요한 모든 수단을 통해 사용자를 인증하면 됩니다. 일반적으로 세션을 통해 쿠키.

두 번째 경우에 관심이 있다면 프로세스의 각 단계에서 고유한 토큰을 발행하고 예상되는 토큰을 서버 측에 저장하는 등의 작업을 수행해야 합니다.그런 다음 요청이 이루어지면 수행 중인 작업에 대해 서버 측에 해당 항목이 있는지, 예상 토큰이 일치하는지, 해당 토큰이 아직 사용되지 않았는지 확인하세요.없는 경우 요청을 거부하고, 있는 경우 해당 토큰을 사용된 것으로 표시하고 요청을 처리합니다.

우려되는 사항이 이 두 가지 시나리오 중 하나가 아닌 경우 답변은 귀하가 제공한 것보다 더 구체적인 내용에 따라 달라집니다.

다른 팁

세션을 사용하여 모든 Ajax 게시물이 인증된 컨텍스트에서 수행되는지 확인하세요.Ajax 코드를 서버의 또 다른 클라이언트로 생각하면 인증 문제를 해결하는 것이 더 쉬워집니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top