2012-09-28 1 views
2

나는 WebAPI를 보유하고 있으며 학생 ID를 식별하는 고유 한 키를 보내야합니다. 나는 아약스 전화를 사용하고 있기 때문에 그 학생의 기록을 얻기 위해이 독특한 학생 ID를 서비스에 보내야한다. 이는보기 소스 또는 개발자 도구를 통해 숨겨진 html 필드 또는 url post 또는 get 매개 변수를 통해 최종 사용자에게 표시됩니다. 학생이 내 계획을 보거나 ID를 다른 학생에게 변경하여 다른 사람의 데이터에 액세스하는 것을 방지하려면 어떻게해야합니까? 아니면 역사를보고 마지막 학생의 이드를 찾고 역사에 접근하는 것과 밀접한 관련이 있습니까?웹 API 보안 - 학생 ID를 http를 통해 보내야 할 때 학생 ID를 보호하는 방법

+0

, 학생은 만들어 질 때, 당신이해야 SHA1이나 MD5 같은 뭔가 mofocka 소금. 그런 다음 요소에서 염액 값을 사용하고 직접 참조 할 수 있습니다. 학생이 MD5 또는 Sha1을 변경하고 다른 학생을 사귈 수있는 경우, 전체 학생이 있어야합니다. – Ohgodwhy

답변

2

절대 클라이언트를 신뢰하지 마십시오. 중요 데이터를 암호화되지 않은 링크 또는 안전하지 않은 (신뢰할 수없는) 클라이언트로 보내지 마십시오. 시나리오에서는 자체 보안을 관리 할 수있는 서버 측 세션을 유지해야합니다 (예 : 올바른 학생 세부 정보 만 액세스 할 수 있습니다. 해당 세션에 고유하지 않은 연속 키를 제공하고 키를 소금으로 치고 세션 ID가 클라이언트에 반환 될 때이를 사용합니다. 클라이언트가 추가 상호 작용을 수행 할 때 세션을 식별하기 위해 토큰을 사용하지만 이후의 모든 상호 작용을 확인하기 위해 세션을 신뢰하지 마십시오. 이것은 세션의 일입니다.

1

3DES 또는 Rijndael과 같은 잘 알려진 알고리즘을 사용하여 유선을 통해 중요한 정보를 암호화하고 끝점에서 해독해야합니다.

+0

요. 암호화하는 걸 좋아한다고 들었으므로 암호화 된 데이터를 암호화하는 동안 암호화 할 수 있도록 MD5 값에 Rijndael 내부에 3des를 넣었습니다. – Ohgodwhy

1

WebAPI를 사용하는 사람은 먼저 로그온 자격 증명을 제공해야합니다. 세션 변수와 세션 쿠키를 사용하여 학생 ID와 같은 정보를 서버 측에 저장해야합니다. 사용자가 학생 'XYZ'라고 알리는 경우 다른 정보를 반환하기 전에 서버 측에서 확인할 수 있어야합니다. 또한 악의적 인 사용자가 클라이언트가 서버로 보내는 패킷을 스누핑하고이를 사용하여 사용자를 가장 할 수 있기 때문에 여전히 안전하지 않습니다. 보안이 제대로 설정된 시스템은 중요한 데이터가 포함 된 모든 트래픽에 대해 HTTPS를 사용해야합니다.

관련 문제