2008-08-18 4 views
9

특정 페이지에 대한 특정 Ajax 호출이 인증 된 사용자에게만 허용되는지 확인하는 가장 좋은 방법은 무엇입니까? 예를 들어인증 된 사용자의 특정 Ajax 요청 만 허용

:

이의 내가 blog.php라는 메인 페이지 (나는, 창의성이 풍부) 알고 있다고 가정 해 봅시다. delete.php이라는 페이지가 있으며 post_id을 찾은 다음 데이터베이스에서 일부 항목을 삭제한다고 가정 해 보겠습니다.

이 매우 고안된 예제에서 blog.php에는 ajax를 통해 delete.php에 대한 요청을 보내어 항목을 삭제하는 메커니즘이 있습니다.

이제이 메커니즘은 blog.php의 인증 된 사용자 만 사용할 수 있습니다. 하지만 무작위 숫자로 delete.php를 호출하고 사이트의 모든 내용을 삭제하는 것에서 누군가를 막을 수있는 방법은 무엇입니까?

은 내가 (이 아니었다) 세션 변수가 설정 여부를 경우 반환 delete.php하는 아약스 전화를 blog.php에서 세션 변수를 설정 한 다음 한 빠른 테스트를했다.

이런 종류의 문제를 처리하는 방법은 무엇입니까?


확인. 나는 이것을 처음 시도했을 때 나는 미쳤음에 틀림 없었다.

나는 위에서 설명한 것과 같은 또 다른 테스트를 완료했으며 완벽하게 작동했습니다.

답변

8

세션 변수를 올바르게 사용하려고했습니다. 사용자가 인증되면 해당 정보를 세션에 저장하여 이후의 각 페이지보기에서 볼 수 있도록해야합니다. $ _SESSION에 액세스하기 전에 두 페이지 (blog.php 및 delete.php)에서 session_start()으로 전화를 걸 었는지 확인하십시오. 또한 쿠키가 활성화되어 있는지 확인하십시오. 그렇지 않은 경우 쿼리 문자열에 추가 매개 변수 (일반적으로 PHPSESSID = < session_id()>)를 전달해야합니다.

3

추가 작업을 수행하지 않고 세션을 인증에 사용하는 것은 좋지 않습니다. Read more on.

관련 문제