나는 오늘 오래된 저장 프로 시저를보고 있었고 quotename
입력 매개 변수를 사용하고 있음을 알았습니다 . 그것이 정확히 무엇을 알아 내기 위해 약간의 파기를 한 후에 나는 이 사이트를 가로 질러왔다 . 나는 그것이 무엇을 어떻게 사용하는지 이해하지만 SQL 주입 공격의 완화로 사용된다고 사이트는 말합니다. asp.net을 사용하여 데이터베이스를 직접 쿼리 한 앱을 개발할 때 ADO.Net 매개 변수를 사용하여 사용자 입력을 리터럴 값으로 전달하고 실제로는 저장 프로 시저에서이를 보호하는 것에 대해 걱정할 필요가 없었습니다.
나는 지금 쓰지 않는 응용 프로그램에서 사용할 저장 프로 시저를 작성하고 있으므로 절차 수준에서 주입 공격을 시도하고 보호해야합니다. quotename
이를 수행하는 가장 좋은 방법이거나 새로운 기능 / 더 나은가 방법?
이 사고 패턴을 얻은 코드 ( @parm1
사용자 입력 매개 변수) :
'SELECT project [Project], project_desc [Description],
customer [Customer], cpnyid [Company]
FROM PJPROJ (nolock)
where project like ' + quotename(@parm1,'''') + '