ASP 개발 웹 페이지에 대한 메모는 Rainman_net의 블로그에서 권장됩니다.
키워드 ASP 웹 개발은 명심해야합니다
원천
사용자가 입력 한 콘텐츠가 올바른 크기이거나 올바른 문자를 포함한다고 믿지 마십시오. 사용자 입력은 결정을 내리기 전에 항상 검증되어야합니다. 가장 좋은 옵션은 COM+ 구성 요소를 작성하여 ASP 페이지에서 호출하여 사용자의 입력을 확인하는 것입니다. Server.htmlencode 메서드, Server.urlencode 메서드 또는이 페이지 하단의 코드 예 중 하나를 사용할 수도 있습니다.
사용자가 입력 한 문자열을 연결하여 ASP 페이지에서 데이터베이스 연결 문자열을 생성하지 마십시오. 악의적 인 사용자는 입력에 코드를 삽입하여 데이터베이스에 대한 액세스를 얻을 수 있습니다. SQL 데이터베이스를 사용하는 경우 저장 프로 시저를 사용하여 데이터베이스 연결 문자열을 만듭니다.
기본 SQL 관리자 계정 이름 SA를 사용하지 마십시오. SQL을 사용하는 모든 사용자는 SA 계정이 존재한다는 것을 알고 있습니다. 안전하고 안정적인 비밀번호로 다른 SQL 관리 계정을 생성하고 SA 계정을 삭제하십시오.
클라이언트 사용자 비밀번호를 저장하기 전에 해싱 알고리즘, Base64 인코딩을 사용하거나 인코딩을 위해 Server.htmlencode 또는 Server.urlenCode를 사용하십시오. 이 페이지 하단의 코드 예제를 사용하여 클라이언트 비밀번호의 문자를 확인할 수도 있습니다.
관리 계정 이름 또는 비밀번호를 관리 스크립트 또는 ASP 페이지에 배치하지 마십시오.
제목 데이터를 악의적 인 사용자에 의해 만들 수 있기 때문에 요청 된 제목을 기반으로 코드에서 결정을 내리지 마십시오. 항상 요청 된 데이터를 인코딩하거나 다음 코드 예제를 사용하여 포함 된 문자를 확인하십시오.
보안 데이터를 쿠키에 저장하거나 웹 페이지에 입력 필드를 숨기지 마십시오.
세션 쿠키를 암호화하지 않고 보낼 위험을 피하기 위해 세션 기반 애플리케이션에 항상 SSL (Secure Sockets Layer)을 사용하십시오. 세션 쿠키가 암호화되지 않은 경우 악성 사용자는 한 응용 프로그램에서 세션 쿠키를 사용하여 동일한 프로세스에서 다른 응용 프로그램을 입력 할 수 있습니다.
ISAPI 애플리케이션, 필터 또는 COM+ 객체를 작성할 때는 변수 및 데이터의 크기로 인해 버퍼 오버 플로우를 사용하십시오. 또한 절대 경로 이름을 상대 경로 이름 또는 URL로 해석하는 등 해석으로 인해 발생할 수있는 정규화 문제에 유의하십시오.
단일 스레드 장치 (STA) 내에서 실행되는 ASP 응용 프로그램이 MTA (Multi-Shreaded Unit)로 전환하면 시뮬레이션 된 토큰이 구식입니다. 이로 인해 시뮬레이션없이 애플리케이션이 실행되므로 다른 리소스에 액세스 할 수있는 신원으로 효과적으로 실행할 수 있습니다. 스레딩 모델을 전환 해야하는 경우 응용 프로그램을 비활성화하고 변경하기 전에 제거하십시오.