2014-09-22 1 views
1

더 나은 제목을 찾지 못했습니다. 질문을 읽은 후에 더 나은 제목을 제안 할 수 있습니다. 또한 더 나은 태그를 제안 할 수 있는데 web-development을 찾을 수 없습니다.데이터베이스 및 프런트 엔드 커플 링에 대한 위험

저는 학생이므로 다음과 같은 문제를 해결하기위한 표준 방법을 모르겠습니다.

보통 데이터베이스 기본 키에 따라 요소 ID (div, span, tr 등)를 설정하여 나중에 쉽게 참조 할 수 있습니다.

예를 들어 기본 키인 DB의 sno에 ID가 설정된 항목의 일부 행이있는 페이지에서 ID를 확인하는 행을 클릭하고 ID를 사용하여 데이터베이스의 결과를 표시합니다.

는하지만 사람으로 그 나쁜 생각이 이 요소 또는 데브 도구를 검사하고 ID를 변경 사용할 수 있다고 생각합니다.

이것을 달성하기위한 표준 방법은 무엇입니까?

EDIT 1
내가 표준 방법을 묻는 또는 표준 관행입니다 이유 web browser wont enforce the security policy for me이 문제에 사용할 것을 알고있다.

+2

미들웨어 또는 데이터 계층의 문제를 해결할 수있는 올바른 위치 인 웹 브라우저에서 보안 정책을 적용하지 마십시오. 서버가 응답 할 수있는 HTTP 요청을 만들 수있는 악의적 인 사용자가 있다고 가정합니다. – BadZen

+0

그렇다면 문서와 데이터 요소를 심층적으로 통합해야하는 경우 브라우저 측면에 데이터 레이어를 만들고 일반적인 자바 스크립트 속성을 사용하여 뷰에 매핑하는 것이 좋습니다. 그렇지 않으면 문서 ID를 사용하는 것이 좋습니다. – BadZen

+0

@BadZen 미안하지만 '브라우저 측에서 데이터 레이어 만들기'에 대해 잘 모릅니다. 블로그, 위키 또는 다른 웹 사이트에 대해 더 자세히 알 수 있습니까? – Harry

답변

2

어쨌든 백엔드에 대한 요청이 위조 될 수 있다고 가정해야합니다. 브라우저에 전송 된 모든 데이터 (표시 또는 숨김)는 공개입니다. 당신이 (가) id 개인 (오히려 드문 요구 사항)이다 considere있는 경우

대신 단순히 행 순서를 사용하여 서버 세션에 테이블 row_order < 유지할 수 ->id합니다.

id가 올바른지 확인하기 만하면 데이터베이스를 업데이트하기 전에 서버를 제어하거나 서버를 제어 할 수없는 경우 데이터베이스를 쓰는 시점에 제어하십시오.

다른 정책 (사용자가 역할을 가지며 역할에 따라 일부 값을 업데이트 할 수 있는지 여부에 따라 다름)을 적용하려면 모든 컨트롤을 서버 측에서 수행해야합니다.

관련 문제