문제

이전 작업에서는 아무도 ASP.NET으로 마이그레이션하고 싶어하지 않는 기존 ASP 응용 프로그램이 있었습니다.그것이 한 일은 아주 잘되었습니다.

그러나 ASP.NET에 가장 적합해 보이는 몇 가지 새로운 기능을 추가해야 했습니다.시스템이 ASP와 ASP.NET의 이상한 하이브리드가 되도록 허용하기로 결정했습니다.

우리의 가장 큰 문제점은 세션 관리였으며 양식 변수를 통해 세션 값을 전달하는 솔루션을 함께 해킹했습니다.나는 쿠키를 통해 이와 동일한 문제를 처리한 다른 사람들과 이야기를 나눴습니다.

두 가지 방법 모두 (매우 안전하지 않을 뿐만 아니라) 끔찍한 문제로 보입니다.

더 좋고 깨끗한 방법이 있습니까? 아니면 주제에 대한 토론이 무의미하다는 점에서 시작하는 것이 너무 나쁜 생각입니까?

도움이 되었습니까?

해결책

세션 데이터를 서버측 데이터 저장소에 유지할 수 없습니까?즉, XML 파일, 데이터베이스 등그런 다음 해시(세션을 안전하게 식별하는 일부 기준에 따라 계산됨)만 .NET 페이지에 전달하면 이 식별자를 사용하여 데이터 저장소에서 데이터를 선택하고 세션 데이터를 채울 수 있습니다.이는 각 앱에서 최신 세션 데이터를 사용할 수 있도록 하기 위해 매번 프록시를 통해 ASP에서 ASP.NET으로 요청을 전달해야 함을 의미하지만 이를 달성할 수 있는 다른 방법은 모르겠습니다.

다른 팁

나는 같은 문제를 다루어야했다. 제 경우에는 키를 쿠키로 암호화하고 다른 정보를 위해 데이터베이스를 사용했습니다. 나는 .NET로 암호화를 썼고 ASP 측의 ID를 해독하기 위해 인터 오프를 썼다. ASP가 .NET과 동일한 문자열을 얻지 못한다는 점에서 BASE-64 문자열을 다루는 이상한 점이 있으므로, 내가 한 것처럼 수행해야 할 수도 있고 Base-64 문자열을 16 진수에 동등한 또는 유사한 가장 낮은 공동체 표지기로 다시 작성해야 할 수도 있습니다. 술책. 비교적 안전합니다 (XSS 공격을 저장).

글쎄, 궁극적으로 최선의 아이디어는 아마도 ASP 앱을 .NET으로 변환했을 것입니다. 나는 아마도 말할 것도없이 생각합니다. 보안이 큰 관심사 인 경우 세션 정보의 무결성을 암호화하고 유지 관리하는 한 단계가있어 대칭 암호화 및 해싱 등을보다 안전하게 만들 수 있습니다.

나는 일반적인 경우에 이것을하는 더 깨끗한 방법을 모른다. 그러나 아마도 시스템간에 공유해야 할 상태를 더 구체적으로 설명 할 수 있습니까? 특정 경우에는 더 깨끗한 솔루션이있을 수 있습니다. 세션 객체 상태가 항상 상태를 유지하는 가장 좋은 방법은 아닙니다.

나는 동의해야 할 것이다 웨스 p ... 장기 목표는 무엇입니까? 장기 목표가 클래식 ASP 응용 프로그램을 ASP.NET으로 마이그레이션한다면 단기 수정이 무엇이든간에 작동한다고 생각합니다. 장기적으로 클래식 ASP 응용 프로그램을 유지하는 것이라면 세션 관리를위한보다 강력한 솔루션을 사용하는 것이 더 나을 것입니다. Oglester 추천.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top