,이를 사용하여 SQL 쿼리를 호출합니다. 변수는 쉼표로 구분 된 숫자 목록 인 문자열입니다 (예 : '1,2,3'
).Select 문은 마이크로 소프트 SQL 서버 2005, 고전적인 ASP 코드에서
문자열 포맷 도착 후의 예는 다음과 같습니다
select HireResponseID, HireResponse, DateResponse, Comments, YearFileOpened, file_number, isCaseOpen, last_update, isConfidential, date_created, OurClient, TheirClient, ProjectName, description, lawyer_lastname, lawyer_firstname, Conflicts.ConflictID
from Hire_Response, Conflicts, Lawyers
WHERE Hire_Response.ConflictID=Conflicts.ConflictID AND Lawyers.lawyerID=Conflicts.lawyerID AND firmID IN (47,140,138,137,139) AND HireID = 594 AND isStillaConflict = 1
ORDER BY file_number, TheirClient, OurClient, lawyer_lastname, lawyer_firstname
지금 내가 저장 프로 시저에이를 켜려고합니다. 그래서
selectHireResponseSQL = "
EXEC ps_selectHireResponseSQL '" & FirmIDString & "'," & HireID
에 ASP 고전적인 코드를 변경 및 저장 프로 시저는 다음과 같습니다
SELECT HireResponseID, HireResponse, DateResponse, Comments, YearFileOpened
, file_number, isCaseOpen, last_update, isConfidential, date_created
, OurClient, TheirClient, ProjectName, DESCRIPTION, lawyer_lastname
, lawyer_firstname, Conflicts.ConflictID
FROM Hire_Response
, Conflicts
, Lawyers
WHERE Hire_Response.ConflictID = Conflicts.ConflictID
AND Lawyers.lawyerID = Conflicts.lawyerID
AND CHARINDEX(',' + CAST(firmID AS NVARCHAR) + ',',','[email protected] + ',') >0
AND HireID = @HireID
AND isStillaConflict = 1
ORDER BY
file_number
, TheirClient
, OurClient
, lawyer_lastname
, lawyer_firstname
하지만 지금은 전혀 모든 레코드를 (코드 불구하고 오류없이 실행하는 것) 받고 있지 않다. 레코드를 가져와야한다는 것을 알고 있습니다. 저장 프로 시저로 전환하면 레코드가 생기기 때문입니다.
여기에 무슨 문제가 있는지 알고 계시나요?
select HireResponseID, HireResponse, DateResponse, Comments, YearFileOpened, file_number,
isCaseOpen, last_update, isConfidential, date_created, OurClient, TheirClient,
ProjectName, description, lawyer_lastname, lawyer_firstname, Conflicts.ConflictID
from Conflics c join
Hire_Response hr
on hr.ConflictID=c.ConflictID join
Lawyers l
on l.lawyerID=c.lawyerID
WHERE CHARINDEX(',' + CAST(firmID as varchar(30)) + ',', ',' + @FirmIDString + ',') > 0
AND HireID = @HireID
AND isStillaConflict = 1
ORDER BY file_number, TheirClient, OurClient, lawyer_lastname, lawyer_firstname;
이 문제가 해결되지 않습니다 :
이 코드는 SQL 주입 공격에 취약합니다. 당신은 실제로 해킹 당하고 있습니다. –
읽었습니까? http : //www.sommarskog.se/dynamic_sql.html#List – Meff