VB.net 액세스 업데이트 쿼리에서 업데이트 쿼리 오류에 구문 오류가 발생했습니다. 내 쿼리는 다음과 같습니다 :VB.net 액세스 업데이트 쿼리
query = "UPDATE users SET username='" & newUsername & "', password='" & newPassword & "', department='" & newDepartment & "', display_name='" & newDisplayName & "', email='" & newEmail & "', extension='" & newExtension & "', access_level='" & newAccessLevel & "' WHERE id=" & usrID
위의 변수 중 어떤 기호도 전혀 없습니다. 내가 도대체 뭘 잘못하고있는 겁니까?
:: UPDATE :
UPDATE users SET username='alison', password='farm1234',department='1',display_name='Alison *****', email='[email protected]**********.com', extension='1012',access_level='50' WHERE id=1
이 쿼리로 실행하는 것이다.
가장 먼저 잘못하고있는 것은 SQL 주입 공격입니다. Google it ... 다음 코드는 실제로 코드를 실행 한 다음 변수 쿼리에 정확히 무엇이 있는지 알려줍니다. –
회사가 약 15 개로 구성되어 있기 때문에 SQL 인젝션에 대해 걱정하지 않았습니다. 우리 집 사무실에있는 사람들, 이것에 대해 많이 알지 못하는 사람들. 나는 SELECT 쿼리를 위해 다른 시간에 prepared statement를 사용하고 있었지만, 이것은 더 빠르다. 게다가 준비된 명령문을 사용하여 먼저 로그인해야합니다. 위의 업데이트를 참조하십시오. –
절대로, 지금까지 시스템을 누가 사용할 것인지 알고 있다고 가정하지 마십시오. 항상 코드를 안전하게 작성하십시오. 당신이 필요로하는 것은 관리자를 더 넓게하기로 결정하는 것이고 갑자기 근본적인 결함을 가진 소프트웨어의 Mission Critical 패키지를 가지고 있습니다. 오 - 매개 변수화 된 쿼리를 통해 로그인하는 것은 아무런 방어책이 아닙니다 ... 과거 로그인을 원한다고 가정합니까? 누군가 다른 사람이 친절하게/바보 같이 로그온 한 상태로 남아있는 기계로 테이블을 떨어 뜨릴 의도가 있다면 ... –