2010-04-25 4 views
0

브라우저 기반 게임을 만들고 싶습니다. 게임을 쉽게 해킹 할 수있는 큰 문제가 있습니다. 문제는 "일하러 갈 수있는 페이지"입니다. 작업 완료 날짜와 작업 완료 후 받게 될 금액을 파일에 저장합니다. 4 종류의 작품이 있습니다. 문제는 아약스를 사용하여 PHP 파일에 필요한 정보를 보내는 것입니다. URL은 다음과 같습니다 : x.php? date = .... & pay = .... 페이지의 javascript 부분은 날짜와 지불액을 계산하지만 URL 바에 x.php? date = anynumber & pay = 99999 99999 달러를 받게됩니다. 어떻게해야합니까? 그리고 나쁜 영어로 죄송합니다 :)Ajax 보안 문제

+0

AJAX는 본질적으로 보안 문제입니다. 보안이 필수 조건이라면 사용하지 않을 것입니다. 보안은 사용자가 보안을 염두에두고 개발했거나 개발하지 않았다는 점에서 간단합니다. –

+2

@ 오스틴 - 동의하지 않습니다. AJAX는 일반 HTTP보다 더 이상 안전하지 않습니다. AJAX **는 ** 보안을 유지할 수 있습니다. –

+0

맞음, HTTP는 본질적으로 안전하지 않은 현명한 것입니다. 보안을 원하면 HTTP도 사용하지 마십시오. AJAX는 세션이나 출처에 관계없이 모든 위치에 신호를 엽니 다. 이는 안전하지 않은 특성입니다. –

답변

1

끝 날짜와 금액을 클라이언트 (브라우저)에서 보내지 마십시오. 대신, x.php? worktype = ...

서버 쪽의 PHP 파일에서 작업 유형을 읽고 필요에 따라 끝 날짜 및 금액을 조회하거나 계산합니다.

아약스 애플리케이션의 보안에 대해 더 자세히 알고 싶다면 호프만 앤 설리반 (Hoffman and Sullivan)이 "Ajax Security"라는 책을 추천 할 수 있습니다.

+0

고마워,이게 작동 할 것 같아 – coolboycsaba

0

사용자가 "work"로 이동하기 위해 게임에서 상호 작용할 때 데이터베이스 서버 측에 값을 저장합니까?

+0

값은 서버의 파일에 저장되며, 각 플레이어는 자신의 파일을 가진다. – coolboycsaba

+0

그런 다음 URL의 매개 변수를 전달하지 말고 사용자 세션의 값을 사용하고 PHP에서 사용자의 파일을 조회하고 거기에서 값을 가져올 수 있습니다. –