1
그래서 여기에 몇 가지 질문을했고 SQL injection vulnurable 코드를 사용하여 불에 구웠다. 사이트가 온라인 상태가 아니더라도 어쨌든 나는 그것을 고칠 것을 권고 받았다. 할 것.SQL 인젝션 cshtml
그래서 다음 코드를 사용하여 테스트 할 테스트 페이지를 만들었습니다.
var date = "2017-01-26";
var testQuery = "SELECT * FROM Test WHERE date = @0";
db.Execute(testQuery, date);
지금까지, 단지이 페이지를 실행 그것은 나에게 오류를 제공하지 않지만, 시간이 아마 약 99 %는 내가 내 데이터를 표시하는 foreach
을 사용하여 데이터베이스에서 무언가를 선택합니다.
A parameter is missing. [ Parameter ordinal = 1 ]
내가 잘못 뭐하는 거지 :
foreach (var c in db.Query(testQuery))
{
<a>@c.kg</a>
}
그리고 그것은 나에게 오류를 제공과 같이 foreach 문을 추가하여
? 그리고이 SQL 인젝션은 안전하지 않은가? PS. 이것은 MVC 유형 프로젝트가 아닙니다. 당신의 DB는 EF 상황, 기본 매개 변수 이름은p0
입니다 인 경우
의 두 번째 매개 변수로
SqlParameter
을 제공을해야한다 value to query –
이것은 논리입니다. 대신 컨트롤러에'Controller'를 넣고 모델로 보내보기를 권한다. 그러나 그것은 당신의 문제와 관련이 없습니다. 그것은 단지 측근입니다. – smoksnes
@ IkramTurgunbaev- 명백하게'db.Execute' do – Fabio