CREATE TABLE dbo.EmpSalaryLog(
LogID int identity(1,1) PRIMARY KEY CLUSTERED,
LogType char(1) NOT NULL,
EmpID char(5) NOT NULL,
EmpName nvarchar(4) NOT NULL,
Salary int NULL,
chgDate date DEFAULT GETDATE()
);
INSERT INTO dbo.Employee
OUTPUT 'I', inserted.EmpID, inserted.EmpName, inserted.Salary
INTO dbo.EmpSalaryLog(LogType, EmpID, EmpName, Salary )
VALUES ('S0023',N'김새나', 'sana','F','2016-05-01',NULL,'MKT','010-5555-5555','KIMSAE@seoul.co.kr',4000);
SELECT * FROM dbo.EmpSalaryLog
SELECT * FROM Users WHERE id = `입력폼으로 받은 값1` AND password = '입력폼으로 받은 값2`
이라고 쳐보자.
SELECT * FROM Users WHERE id = `` OR 1 = 1-- AND pasword~~~
이 되버리는데 이렇게 되면 사실상
SELECT * FROM Users 이 되어버린다.
1 = 1은 항상 TRUE이고 OR 로 연결되었기 때문에 결국에 Users 테이블을 모두 보여줘서 정보유출이 발생하게 된다.