sql injection trường đại học giao thông vận tải tphcm

7 16 0
sql injection  trường đại học giao thông vận tải tphcm

Đang tải... (xem toàn văn)

Thông tin tài liệu

db.prepareStatement("SELECT pizza, toppings, quantity, order_day " + "FROM orders WHERE userid= ? AND order_month= ? "); ps.setInt(1, session.getCurrentUserId());. ps.set[r]

(1)(2)

SQL

• Widely used database query language • Fetch a set of records

SELECT * FROM Person WHERE Username=‘Vitaly’

• Add data to the table

INSERT INTO Key (Username, Key) VALUES (‘Vitaly’, 3611BBFF)

• Modify data

UPDATE Keys SET Key=FA33452D WHERE PersonID=5

(3)

Sample Code from Project 1

• Sample PHP

$selecteduser = $_GET['user'];

$sql = "SELECT Username, Key FROM Key " "WHERE Username='$selecteduser'"; $rs = $db->executeQuery($sql);

(4)

SQL Injection: Basic Idea

Victim server Attacker

unintended query

receive valuable data

2

 This is an input validation vulnerability

Unsanitized user input in SQL query to back- end database changes the meaning of query

(5)(6)

Prepared Statement: Example

PreparedStatement ps =

db.prepareStatement("SELECT pizza, toppings, quantity, order_day " + "FROM orders WHERE userid=? AND order_month=?"); ps.setInt(1, session.getCurrentUserId());

ps.setInt(2, Integer.parseInt(request.getParamenter("month"))); ResultSet res = ps.executeQuery();

Bind variable: data placeholder

• Query parsed without parameters

• Bind variables are typed (int, string, …)

(7)

Mitigating Impact of Attack

• Prevent leakage of database schema and other information

• Limit privileges (defense in depth)

• Encrypt sensitive data stored in database • Harden DB server and host OS

Ngày đăng: 09/03/2021, 04:48

Tài liệu cùng người dùng

Tài liệu liên quan