문제

나는 여기서 약간 혼란스러워합니다.내가 아는 한 Microsoft는 매개변수화가 SQL 주입 공격으로부터 데이터베이스를 보호하는 가장 좋은 방법이라고 주장합니다.하지만 여기서는 두 가지 상충되는 정보 소스를 발견했습니다.

이 페이지 ADO 명령 개체를 사용하라고 말합니다.하지만 이 페이지 명령 개체가 스크립팅에 안전하지 않다고 말합니다.보안 취약점으로 인해 VBScript나 JScript에서 명령 개체를 사용해서는 안 된다는 글을 어딘가에서 읽은 것 같은데, 해당 기사를 찾을 수 없는 것 같습니다.

여기에 뭔가 빠졌나요? 아니면 두 기사가 서로 모순되는 것 같나요?

도움이 되었습니까?

해결책

여기서는 틀릴 수도 있지만 이는 누군가가 Command 개체를 사용하여 나쁜 일을 할 수 있다는 의미라고 생각합니다.즉.다른 사람이 스크립트를 작성하고 있다면 신뢰할 수 없습니다.

보다 스크립팅에 안전함 이 기사에서.온라인에서 이 문구에 대해 이야기하는 모든 인스턴스는 ActiveX 컨트롤에 "이 컨트롤은 I/O를 수행하지 않거나 원래 서버에만 응답합니다"라고 표시하는 것처럼 이를 참조하지만 Command 개체는 그렇게 하지 않습니다.안전하지 않을 수 있는 많은 일을 수행하는 데 사용될 수 있습니다.

그들이 말하는 "안전함"과 SQL 주입을 방지하는 "안전함"은 서로 다른 것입니다.ADO Command 개체를 사용하여 데이터를 매개변수화하는 방법에 대한 기사가 바로 여기에 있습니다.그렇게 해야 합니다.

그리고 Microsoft는 여기서 이를 추가로 확인합니다.

http://msdn.microsoft.com/en-us/library/ms676585(v=VS.85).aspx

다른 팁

내 생각에 "스크립팅에 안전하다"는 것은 "나이지리아 왕자에게서 방금 검색한 웹페이지에서 실행해도 안전하다"는 뜻이라고 생각합니다.명령 개체는 서버에서 실행하기에 안전해야 합니다.

하지만 예전에는 직장에서 동료들이 이를 신뢰하지 않았기 때문에 기본적으로 동일한 작업을 수행하는 내부 프레임워크가 있었습니다.

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