다음은 내 코드의 요약입니다.숨겨진 입력에 ID (DB에 삽입 됨)를 두는 것이 안전합니까?
내 웹 사이트는 기본적으로 특정 테이블의 모든 행 내용을 반복합니다. 그러나 때로는 특정 행에서 개별 ID를 얻어야합니다. 숨겨진 입력이 효과가 있지만 보안에 큰 부담이된다는 것을 알고 있습니다. 숨겨진 입력에서 ID를 얻은 후에 다른 테이블에 ID를 삽입해야합니다. 해커는 단순히 숨겨진 입력 값을 변경하고 시스템을 해킹 할 수 있습니다. 나는 서버 쪽에서 그것을 검증 할 방법을 찾을 수 없다. 암호화가 도움이 될 수 있지만 해커가 항상 해독 방법을 찾을 수 있다고 생각합니다. 누구나 이것을 더 안전하게 만드는 방법에 대한 아이디어가 있습니까?
업데이트 : 내 웹 사이트의 내용이 다소 모호한 점에 대해 사과드립니다. 기본적으로 페이스 북과 비슷한 싫어하는 시스템 일뿐입니다. 내 테이블의 구조는 : id, user_that_liked_id, post_id입니다. 사용자가 게시물을 좋아하면 게시물의 ID가 post_id에 삽입되고 게시물을 좋아하는 사용자의 ID가 user_that_liked_id에 삽입됩니다. 사용자가 숨겨진 입력의 ID를 변경하기 만하면 모든 종류의 불필요한 내용을 삽입 할 수 있기 때문에 여기에 보안 문제가 있습니다. 아래 코드를 참조하십시오.
HTML (요약) : 클라이언트에 제공하는 경우
<div class="thumbsup mini_thumbs" name="mini_thumbs">
<input type="hidden" value="<?php echo $row->id; ?>" id="post_id"/>
<input class="up" name="thumbsup_vote" type="submit" value="1" title="Vote up" onclick = "liked(this)" />
<input class="down" name="thumbsup_vote" type="submit" value="0" title="Vote down" onclick = "disliked(this)" />
</div>
자바 스크립트/jQuery를 (요약)
function liked(e) {
var post_id = $(e).siblings("#post_id").val();
alert(post_id);
}
업데이트를 확인하십시오. :) –
문제는 서버 쪽에서 확인할 방법이 없다는 것입니다. 선택한 ID가 올바른 것인지 실제로 확인할 수는 없습니다. –
* right *인지 확인 할 필요는 없습니다. * 허용 *인지 여부 만 확인하면됩니다. 그들이 ID를 다른 ID로 변경하면 아무 것도 선택하지 않아도된다. – Gareth