2016-08-12 2 views
0

우리 직원들이 동일한 IP를 사용하기 때문에 내부 용으로 개발할 위험이 있습니다. 따라서 휴식 요청을 보내고 무언가를 DB에 삽입 할 수 있습니다. 심지어 스크립트를 축소하고 네트워크 탭으로 이동하여 요청을 볼 수 있습니다.동일한 IP에서 코러스 방지

이 경우 Cors를 적용하는 방법은 무엇입니까?

+0

시스템에 로그인 할 때 보안 기능을 강화해야하는 것처럼 들리거나 암호/암호를 입력하십시오. – epascarello

+0

좋은 사용자를 IP 기반으로 분류 할 수 없다면 Cors는 도움이되지 않습니다. 그리고 실제로 당신이 할 수 있었다하더라도 사람들이 단순히 당신을 말릴 수 있기 때문에 여전히 코르는 당신을 돕지 않을 것입니다. 실제로 필요한 것은 적절한 인증 및 권한입니다. ** ** 데이터베이스에 대한 무단 액세스를 허용하지 마십시오. – freakish

+0

@freakish DB에 대해 한탄 한 authroization을 말하는 것이 아닙니다. 같은 네트워크에있는 사람들은 우편 배달부를 사용하여 나머지 엔드 포인트를 알면 무언가를 할 수 있습니다. –

답변

2

수 없습니다.

신뢰할 수있는 사람이 방문한 신뢰할 수없는 웹 사이트는 방문자의 브라우저를 사용하여 서버에 요청하고 서버에서 데이터를 도용하지 못하도록합니다.

CORS는 타사 웹 사이트가있는 경우 동일한 출처 정책을 선택적으로 사용하지 않도록 설정합니다. 은 데이터를 신뢰합니다.

데이터베이스를 변경할 수있는 사용자가 있지만 사용자가 부여한 클라이언트 측 UI를 통해서만 문제가 해결되는 것은 아닙니다.

이 문제를 해결하려면 서버 쪽 인증 로직이 필요합니다.

간단한 예를 들어 사용자가 ID를 전송하여 댓글을 삭제할 수 있도록하는 REST API가있는 경우 요청에 사용자 이름과 비밀번호 (또는 인증을위한 다른 양식)가 포함되어야합니다. 너가 요청하는 을 알 수 있습니다. 요청을 보낸 사람을 알았 으면 사용자가 주석을 삭제할 수있는 권한이 있는지 확인해야합니다. 일반적으로 논리는 다음과 같습니다.

if (comment.owner == user || user.has_role("admin")) { 
    comment.delete(); 
} else { 
    response.status.unauthorised(); 
    response.send(); 
} 
+0

모든 사람이 방을 예약 할 수있는 앱처럼 상상해보십시오. 어떻게 역할을 설정 하시겠습니까? through ajax 나는 당신의 역할도 바꿀 수 있습니다. –

+0

역할이 데이터베이스의 사용자에게 연결됩니다. 사용자의 역할은 (예를 들어) 관리자 사용자 만 편집 할 수 있어야합니다 ... 역할 변경을 요청하는 사용자가 허용하기 전에 관리자인지 테스트하십시오. – Quentin

+0

여기에 오해가 있다고 생각합니다. 내 관심사는 인트라넷 일명 인터넷 네트워크를 사용하고 우리 서버가 내부적이기 때문에 사람들이 우편 배달부 등을 사용하여 아약스 요청을 보내는 것을 방지하는 방법입니다. –

관련 문제