각 행마다 ID가 분명히있는 테이블이 있습니다. 사용자가 테이블 행을 클릭하면 전체 데이터를 보여주는 다른 페이지로 이동합니다 (다른 페이지는 실제로로드 이벤트 이후 숨겨져 있지 않은 동일한 페이지 임).가장 쉬운 방법은 파이어 버그에서 테이블 데이터가 조작되었는지 확인하는 것입니다.
jquery로 click 이벤트를 가져온 다음 jquery load로 id를 보내면 데이터가로드됩니다.
문제는 이것입니다. 페이지를 사용하는 사람이 방화범이 걸린 사람을 설치 한 경우 그는 테이블의 ID를 조작 할 수 있으며 접근해서는 안되는 것에 액세스 할 수 있습니다.
그래서 그 사용자가 액세스 할 수있는 ID를 확인하는 함수를 작성해야했습니다.
function checkID($searchColumn,$userColumn,$tablename,$table_id,$user_id)
{
Global $db;
$query = "SELECT `{$userColumn}` FROM $tablename WHERE `{$searchColumn}`=?";
//echo $query;
$stmt = $db->prepare($query);
$stmt->bind_param('i',$table_id);
$stmt->execute();
$stmt->bind_result($myuser_id);
if($stmt->fetch())
{
if($myuser_id==$user_id):
return true;
else:
return false;
endif;
}
}
위의 함수는 기본적으로 사용자가 해당 ID에 액세스 할 수 있는지 여부에 따라 true 또는 false를 제공합니다.
데이터가 서버 측에서 파이어 버그에서 조작되었는지 확인하는 더 좋은 방법이 있습니까?
기본적으로 ID는 서버에 보내지는 ID가 테이블에있는 것과 동일한 지, 방화 꾼이 조작하지 않았는지 확인하고자합니다. 내 기능이 작동하더라도 나는 아마도 더 간단한 해결책이 있다고 생각하고있다. 전문가들은 무엇을합니까?
브라우저에는 요즘 개발자 도구가 내장되어 있으므로 사용자는 방화범을 설치하지 않아도됩니다. –
동의합니다. Firebug가 그 예입니다. 저 밖에 다른 사람들이 있다는 것을 압니다.하지만 저는 파이어 폭스를 사용합니다. 그래서 방화범은 제가 아는 사람입니다. 내가 사용하는 것보다 ID를 검증하는 더 쉬운 방법을 찾고 있었고 전문가가하는 일을 묻는 중이었습니다. –
두 노트 : 1. [Firebug가 사라집니다] (https://blog.getfirebug.com/2016/06/07/unifying-firebug-firefox-devtools/), 어느 시점에서 내장 된 [Firefox DevTools] (https://developer.mozilla.org/en-US/docs/Tools). 2. 나는 실제로 테이블이 어떻게 생겼는지 아직도 나에게 불분명하지만 답변을 제공했다. –