다음과 같이 C# 클래스가 있습니다.C#에서 개체를 serialize하고 변조를 방지하는 방법?
public class TestObj
{
private int intval;
private string stringval;
private int[] intarray;
private string[] stringarray;
//... public properties not shown here
}
이 클래스의 인스턴스를 문자열로 serialize하고자합니다.
추가 :
이 문자열을 QueryString 매개 변수로 URL에 추가합니다. 그래서 문자열을 쉽게 조작 할 수 없도록 노력하고 싶습니다.
또한 직렬화 방법이 효율적이어서 문자열의 크기가 minmal입니다.
특정 .NET Framework 클래스/메서드에 대한 제안 사항을 사용해야합니까?
이 문제는 대상과의 공유 또는 업데이트를 처리하지 못한다는 것입니다. 아마도 그가 변조를 방지하기를 원한다면 다른 측은 잘못된 값을 검사하는 방법을 알아야 할 것입니다. 또한 그가 예측 가능한 비밀을 사용하면 누군가가 객체를 조작하고 해시를 다시 계산할 수 있습니다. – Omniwombat
바퀴를 다시 열지 마십시오. CLR은 적절한 암호 작성자가 검토 한 HMAC 서명을 상자에서 즉시 제공합니다. –
@Onniwombat : 이것은 정보의 쿼리 문자열 전송을 다루기 때문에 확실히 높은 보안 시나리오는 아닙니다. 비밀의 순수한 존재는 어떤 '공격자'라도 버릴 것이다. 또한 해시 솔루션을 보안 요구 사항까지 확장 할 수 있도록 무기한으로 선택 될 수 있지만이 경우에는 줄 전체의 문자열을 암호화합니다. 어느 쪽이든, 변조 방지를 위해 목적지에 액세스해야합니다. – Alex