2010-03-15 4 views
-1

특정 입력란, 입력란, 확인란 등이있는 양식이 있습니다.이 입력란 및 확인란의 이름을 암호화해야합니다. 현재 C#을 통해 Rijndael 암호화/암호 해독 방법을 사용하고 있습니다. 그러나 이렇게하면 암호화 된 이름이 너무 길어 게시물에 전달할 수 없습니다. 알맞은 암호화 된 이름을 얻는 더 좋은 방법이 있습니까? 내 목적은 게시물이 발생하기 전에 암호화 된 이름을 갖는 것입니다. 누군가가 이미 암호화 된 이름 뒤에 코드를 본 경우입니다.내 http 양식 요소의 이름을 암호화해야합니다.

+4

왜 이름을 암호화해야합니까? 이것은 약간 이상한 요구 사항처럼 느껴집니다. 이 이유를 설명해 주시겠습니까?다른 좋은 해결책이있을 수 있습니다. –

+2

SSL을 사용하지 않는 이유는 무엇입니까? – Adeel

+0

SSL은 데이터가 전송되는 동안 암호화된다는 것을 의미합니다. 데이터가 클라이언트에 제공되기 전에 데이터를 암호화해야하며 전송 된 데이터를 실제로 암호화하는 것이 아니라 요소 이름을 암호화해야합니다. –

답변

4

이렇게하면 어떤 목표를 달성 할 계획입니까?

  • 누구든지 양식을 분석하거나 스푸핑 된 데이터를 제출하는 것을 중단하지 않을 것입니다. 그들이 페이지 소스를보고 <p>Email: <input type='text' name='skhge,f'></p>을 보면 "skhge, f"가 전자 메일 필드의 이름이므로 "전자 메일"대신 해당 이름으로 스푸핑 된 데이터를 제출할 수 있음이 분명합니다.

  • 질문에 대한 사용자 의견 중 하나는 양식이 사용자에게 보내질 때 가로 챌 수있는 양식에 대해 우려하는 것 같습니다. 그렇다면 SSL을 사용하십시오. 그것은 양방향으로 트래픽을 암호화하므로 필드 이름을 숨기는 것이 차단을 전혀 제공하지는 않지만 사용자가 차단하는 것을 막을 수 있습니다. (내 첫 번째 사항은 데이터의 최종 수신자에 대해 도청 자에게 동등하게 적용됩니다.)

  • 내가 생각할 수있는 유일한 시나리오는 누군가가 건물을 짓는 것에 대해 걱정하는 경우입니다. 봇이 양식을 제출하기는하지만 잘못된 방법이긴합니다. 필드 이름을 암호화하는 경우 양식을 보낼 때마다 동일하게 유지되므로 봇은 " skhge, f "를"email "대신에 사용합니다.

    봇을 이런 방식으로 처리하려면 암호화 된 이름이 아닌 모든 양식의 임의의 필드 이름을 제출해야하며 GUID 사용 제안에 대한 응답은 ' 필드 이름 -> 모든 양식에 대한 맵을 의미합니다. 그런지도를 유지하는 것이 봇 작가의 속도를 늦추고, 심지어는 속도를 늦추지 않을 수있는 유일한 방법입니다. 스팸 필터를 통해 HTML 메일을 전달하려는 시도에서 스팸 발송자가 사용하는 것과 같이 양식 레이아웃 및 텍스트 콘텐츠를 난독 화하기위한 예외적 인 조치를 취하지 않는 한, 봇 제작자는 이전에 공백 양식을 요청하는 것이 쉬울 것입니다 사용자에게 표시되는 텍스트 레이블 (예 : 사용자가 볼 수있는 텍스트 "Email :")을 해당 입력 필드와 함께 제출하고 상호 연관시켜 정확한 필드 이름 ("skhge, f")을 얻습니다.

그래서 나는 당신의 의도 된 목적이 무엇인지 확실히 모르겠지만, 필드 이름을 암호화하는 것은 그것을 할 수있는 가장 좋은 방법이되지 않습니다 99 % 확신 - 그것도 전혀 작동하면 것인지를.

+0

나는 봇에 대해 걱정하지 않는다. 그러나 지금까지 필드의 'nonesense 이름'에 대한 주기적으로 중요한 변경 사항은 주기적으로 바뀌고있다. 예, 필드가 나타내는 것과 일치하지 않는 이름을 가진 사람은 상관 없다. 필요한 모든 것은 짧은 문자열을 나중 단계에서 해독 할 수있는 무의미한 값으로 변경할 수있는 간단한 암호화 시스템입니다. –

+3

@William Calleja> ** 왜 ** 짧은 문자열을 나중 단계에서 해독 할 수있는 무의미한 값으로 변경할 수있는 간단한 암호화 시스템이 필요합니까? – Jacco

+0

@William Calleja - 아직 내 기본 질문에 대답하지 않았습니다. 이것을 수행하여 무엇을 성취하려고합니까? 암호화 된 정보를 얻고 자하는 사람을 늦추지 않고 봇이 문제가되지 않는다고 말하면서도 필드 이름을 암호화함으로써 어떤 이점이 있다고 생각합니까? 아무런 이유없이 복잡성을 추가하려는 것 같습니다. –

0

서버 측에서 임의의 값으로 이름을 매핑하는 것이 좋습니다.

[lkjgh] = 'username'; 
[hjsaf] = 'email'; 

모든 요청마다 다시 매핑하면 코드를 살펴보면 아무런 가치가없는 것으로 나타납니다.

아직도이 요구 사항이 궁금합니다. 일반적으로 SSL은 도청을 막습니다.

+0

이름을 매핑하는 것은 옵션이지만 요소 이름은 약간 동적입니다. 서버 측에서 해독 할 cna보다 작은 무의미한 문자열을 생성하는 데 사용할 수있는 '짧은'암호화 형식이 있는지 궁금합니다. –

0

누군가가 입력 이름을 전달하는 값과 관련시킬 가능성에 대해 걱정한다면 의미있는 변수 이름 대신 guids를 사용하는 것이 가장 좋은 이유는 무엇입니까?

+0

제안 해 주셔서 감사합니다.하지만 전체적으로 요소 이름을 유지해야합니다. GUID를 사용하면 동적 요소 이름을 가질 수 없으며 작성하려는 모든 양식에 대해 새 GUID를 작성해야합니다. 양식이 많이 필요하고 많이 달라질 것으로 예상됩니다. 집단. –

+0

guid를 쉽게 매핑하고 이름을 guid로 매핑하는 응용 프로그램 상태 사전에 이러한 서버 측을 저장할 수 있습니다. 이렇게하면 동적 이름을 사용할 수 있습니다. 그러나 동적 인 동작이 각 요청에 대해 새로운 이름을 생성하는 것과 같은 경우 사전이 시간이 지남에 따라 커질 가능성이 있으므로 접근 방법을 권장하지 않습니다. –

관련 문제