데이터베이스 쿼리에서 SQL 삽입을 방지하는 데 권장되는 방법은 SqlParameters
입니다. 이 매개 변수를 내부적으로 소독하는 코드/함수는 어디에서 찾을 수 있습니까? 내 사용자 지정 구현에서이 함수를 다시 사용하고 싶습니다. 반사경을 사용하여 그것을 찾으려고했지만 실패했습니다.SqlCommand는 매개 변수를 어떻게 sanitize합니까?
답변
XSS가 아닌 SQL 삽입을 방지하고 은 코드 데이터 또는 매개 변수 데이터를 암호화하는 코드가 없습니다.
매개 변수 값을 쿼리 문자열과 별도로 서버에 전송하여 값이 이 아닌이 SQL 문으로 직접 대체되도록 보호합니다.
DECLARE @ParamValue int
-- //@ParamValue variable is populated from the framework in a safe way
SELECT * FROM [table] WHERE [column] = @ParamValue
이 빠르고 훨씬 더 안전하고 강력한 기능보다이 같은
그래서 대신 SQL 서버 실행 뭔가 : 그것은 이런 식으로 뭔가를 실행하는 것처럼
SELECT * FROM [table] WHERE [column] = ParameterValue
그것은 더 매개 변수 데이터를 평가해야합니다. 이러한 함수는 custom escape characters 및 향후 개선 사항을 처리하기 위해 매우 복잡해야합니다 (읽기 : 오류가 발생하기 쉬운).
데이터가 데이터이고, 코드가 코드이며, 두 가지가 만나는 일은 결코 없습니다.
다른 지금, 삭제, 답변에 대한 귀하의 의견 :
내가 값 러키에 전달하면, 그것은이 중단되지 않도록 O''Rourke을로 인코딩합니다 쿼리. 옳은?
아니요, 정확하지 않습니다. 변수는 데이터 블록에서 직접 생성되므로 특수 이스케이프 또는 인코딩이 필요하지 않습니다.
OK, 감사합니다. "// @ ParamValue 변수는 안전한 방식으로 프레임 워크에서 채워집니다."이렇게 안전한 방식으로 어떻게 채워지나요? –
그것은 sql이 아닙니다. 변수는 클라이언트에서 전송 된 _data_ 블록에서 SQL Server에 의해 생성되지만 데이터 세그먼트에 보관되고 코드로 처리되지 않으므로 데이터를 이스케이프하거나 인코딩 할 필요가 없습니다. –
자세한 내용은 알고 계십니까? 나는 정말로 전체 과정을 이해하고 싶다. –
- 1. SqlCommand는 매개 변수가있는 SQL 문을 최적화합니까?
- 2. JS 평가 입력은 어떻게 sanitize합니까?
- 3. SQL 연결이 왜 매개 변수를 남겨 둡니까?
- 4. 레일스 테스트에서 POST 매개 변수를 어떻게 지정합니까?
- 5. DI/IOC에 대한 매개 변수를 어떻게 주문해야합니까?
- 6. 비동기 pageloads - 어떻게 콜백에 매개 변수를 전달합니까?
- 7. 어떻게 int & 매개 변수를 기본값으로 사용합니까?
- 8. URL 경로에서 URL 매개 변수를 어떻게 나누나요?
- 9. Hibernate의 subselect 태그에 매개 변수를 어떻게 전달합니까?
- 10. pathsForResourcesOfType : inDirectory : 디렉토리 매개 변수를 어떻게 구합니까?
- 11. Objective-C 메서드 매개 변수를 어떻게 정의합니까?
- 12. 어떻게 NHibernate에서 IN 연산자에 매개 변수를 전달합니까?
- 13. Boo에서는 배열 매개 변수를 어떻게 지정합니까?
- 14. Rails에서 컬링으로 게시하기위한 매개 변수를 어떻게 인코딩합니까?
- 15. 모델 레벨에서 HTML이 포함 된 문자열 필드를 어떻게 sanitize합니까?
- 16. 매개 변수를 인덱스보기로 전달
- 17. 매개 변수를 JavaScript에 전달
- 18. 매개 변수를 선택자에게 보내려면?
- 19. Struts2 매개 변수를 JavaScript로
- 20. ApplicationBarIconButton에 매개 변수를 전달하십시오.
- 21. 매개 변수를 addhandler에 보내시겠습니까?
- 22. 여러 개의 선택적 매개 변수를 사용하는 방법에서 어떻게 첫 번째 매개 변수를 지정할 수 있습니까?
- 23. 옵션 매개 변수를 계산하는 것이 아니라 매개 변수를 전달하는 비용
- 24. param 태그와 flashvars 매개 변수를 사용하여 매개 변수를 전달합니다.
- 25. 매개 변수를 사용하여 실행
- 26. 왜 매개 변수를 잃었습니까?
- 27. 매개 변수를 변경하는 클래스
- 28. 매개 변수를 리터럴로 처리
- 29. SQL에서 매개 변수를 전달하십시오.
- 30. 출력 매개 변수를 레이블
위대한 질문 - 매개 변수화 된 쿼리를 사용하여 보안이 얼마나 중요한지 이해하는 것이 중요합니다. – RedFilter