이것은 정말 멍청한 질문 일지 모르지만 나는 왜 그렇지 않은지 추측합니다 ...여기에 SQL 주입의 가능성이 있습니까?
저는 RIA Services with Entity Framework를 백 엔드로 사용하고 있습니다. 필자는 사용자 입력을 받아들이고 데이터를 사용하여 직접 RIA 서비스 (그리고 EF와 차례로 데이터베이스)에 질문하는 앱의 일부 장소를 가지고 있습니다. 이 레이어 중 하나라도 보안 문제를 방지하는 데 도움이됩니까? 또는 데이터를 직접 스크럽해야합니까? 새 사용자 등록이 응용 프로그램과 함께, 나는이 메소드를 호출 할 때마다 예를 들어
:
[Query]
public IEnumerable<EmailVerificationResult> VerifyUserWithEmailToken(string token)
{
using (UserService userService = new UserService())
{
// token came straight from the user, am I in trouble here passing it directly into
// my DomainService, should I verify the data here (or in UserService)?
User user = userService.GetUserByEmailVerificationToken(token);
...
}
}
(그리고 난 내 자신의 사용자 검증 시스템이 완전히 다른 문제입니다 압연 수 있는지 여부, 우리는 과정에있다 MS의 멤버쉽 프레임 워크를 채택했다. 나는 일반적으로 SQL 인젝션과 RIA 서비스에 더 관심이있다.)
어디서 왔는지 상관없이 데이터베이스 쿼리를 항상 스크럽해야합니다. 프로그래머가 예상하지 못했던 곳에 SQL injection을하는 매우 흥미로운 방법이 있습니다. 그리고 입력을 제거하는 것은 자원을 전혀 소모하지 않습니다. – TheLQ
라이브러리/프레임 워크가 이미 해당 라이브러리를 제거하는 경우가 아닙니까? 그렇지 않으면 올바르지 않은 데이터 (예 : 이중 이스케이프 된 데이터)가 발생할 수 있습니다. – oedo