2010-07-11 2 views
1

웹 사이트의 데이터베이스 프런트 엔드를 작성하고 있습니다. 레코드 옆에 다음 링크가 포함되어 있습니다.1 회 사용 링크 만들기

Record 1 - [Add][1] [Edit][2] [Delete][3] 

하지만이 링크가 두 번 이상 사용되지 않도록 보호하려고합니다. 내 생각은 해시 값을 전달한 다음 유효한 해시 값 목록을 어딘가에 테이블에 저장하고 유효한 해시 값이있는 요청 만 처리하는 것입니다. 할 수있는 더 좋은 방법이 있습니까?

업데이트 :이 질문에 대한 대답을 통해이 질문을 할 수있었습니다 : What is the difference between a "nonce" and a "GUID"?. 왜 정확히 GUID 대신에 nonce를 사용합니까?

답변

2

해시 대신 암호 학적으로 안전한 임의의 바이트 ("nonce")를 사용해야한다는 것을 제외하고는 올바른 아이디어입니다.

+0

나는 이것이 데이터베이스를 치지 않고 첫 요청 이었는지를 결정할 수있는 방법을 찾고 싶습니다. 그러면 DOS 공격으로부터도 보호 할 수 있습니다. –

+0

"nonce"값에 대해 좀 더 읽었습니다. 실제로 해쉬를 사용하는 것과 같은 생각입니까,하지만 nonce 값을 해쉬로 사용합니까? 예를 들어, Perl Data :: GUID 모듈을 사용하여 GUID 값을 만든 다음 해시 값을 "nonce"로 사용 했습니까? –

+0

넌스의 포인트는 예측할 수 없습니다. 해시를 사용하는 경우 무작위 키가있는 HMAC SHA 512 해시 키를 사용해야하며 키를 자주 변경해야합니다. – SLaks