반응형
LINQ를 SQL에 사용하면 SQL 주입을 방지할 수 있습니다.
저는 지금 퍼블릭 사이트를 개설하고 있는데 우선 SQL 주입이 생각납니다.저장 중인 텍스트 필드가 있으며 데이터베이스에 업데이트/쓰기하기 위해 linq를 사용하고 있습니다.linq를 사용해도 안전합니까?
이 예는 사용자 계정을 만드는 것입니다.
Data.MemberRegistrationDataContext context = new MemberRegistrationDataContext();
Data.tbl_Member_UserProfile profile = new tbl_Member_UserProfile();
profile.SSN = Convert.ToDecimal(Session["tempMemberSSN_Registration"]);
profile.UserName = userName;
profile.Password = password;
profile.EmailAddress = email;
profile.QuestionID = qID;
profile.QuestionResponse = securityAnswer;
profile.LastModDt = DateTime.Now;
profile.LastModBy = "web";
context.tbl_Member_UserProfiles.InsertOnSubmit(profile);
context.SubmitChanges();
이 예는 암호 변경입니다.
MemberRegistrationDataContext dc = new MemberRegistrationDataContext();
var mProfileRecord = dc.tbl_Member_UserProfiles.Single(c => c.SSN == sSSN);
mProfileRecord.Password = sNewPassword;
dc.SubmitChanges();
이것들은 안전합니까?LINQ는 생성되는 SQL을 자동으로 매개변수화합니까?
예, LINQ는 SQL 주입을 중지하는 데 도움이 됩니다.
LINQ to SQL은 SQL 매개 변수를 통해 모든 데이터를 데이터베이스로 전달합니다.따라서 SQL 쿼리는 동적으로 구성되지만 SQL 주입 공격의 가장 일반적인 원인으로부터 보호하는 매개 변수를 통해 값이 서버 측으로 대체됩니다.
또한 자세한 내용은 LINQ를 통해 SQL 주입 공격을 고통 없이 제거를 참조하십시오.
가셔도 됩니다.Linkq는 데이터베이스로 전송하는 데이터를 매개 변수화합니다.
Log 속성을 사용하여 진행 중인 작업을 확인합니다.dc.Log = Console.Out;
내보낸 SQL이 임의 SQL을 실행하는 데 악용할 수 없는 명명된 매개 변수를 사용하기 때문에 그렇게 해야 합니다.
언급URL : https://stackoverflow.com/questions/473173/will-using-linq-to-sql-help-prevent-sql-injection
반응형
'programing' 카테고리의 다른 글
Aspect Fit(측면 맞춤 (0) | 2023.08.04 |
---|---|
HTML5 비디오 치수 (0) | 2023.08.04 |
getJ 사용 방법SON, 포스트 메소드로 데이터를 전송하시겠습니까? (0) | 2023.08.04 |
명령 하나로 도커 파일 빌드 및 실행 (0) | 2023.08.04 |
도커 네트워킹 사용 안 함: 경고: IPv4 전달 사용 안 함.네트워킹이 작동하지 않음 (0) | 2023.08.04 |