1. Bảo mật cho web
Hàm trống hack SQL injection: Lọc toàn bộ các ký tự đặc biệt trước khi chèn vào câu lệnh truy vấn
Code:
Ví dụ minh họa bằng trang Login.htm
Code:
1 phần code trang Login.asp
Code:
Giả định kịch bản đăng nhập
1. Người dùng duyệt trang login.htm để đăng nhập
2. Truy vấn được gửi đến trang login.asp để xử lý
3. Tại trang login.asp UserName và Pasword đã được "lọc" thông qua hàm formatInput
2. Mã hóa mã nguồn web khi đặt trên host với Window Script Encoder:
[You must be registered and logged in to see this link.]
3. Ví dụ 1 trang ranking sử dụng .xml để lưu thông tin nhân vật và tự động cập nhật mỗi giờ
[You must be registered and logged in to see this link.]
Hàm trống hack SQL injection: Lọc toàn bộ các ký tự đặc biệt trước khi chèn vào câu lệnh truy vấn
Code:
- Code:
private function formatInput(byval str)
str = replace(str, "'", "", 1, -1, 1)
str = replace(str, "-", "", 1, -1, 1)
str = replace(str,"""", "", 1, -1, 1)
str = replace(str, "<", "<", 1, -1, 1)
str = replace(str, ">", ">", 1, -1, 1)
str = replace(str, "[", "[", 1, -1, 1)
str = replace(str, "]", "]", 1, -1, 1)
str = replace(str, "=", "", 1, -1, 1)
str = replace(str, "select", "select", 1, -1, 1)
str = replace(str, "join", "join", 1, -1, 1)
str = replace(str, "union", "union", 1, -1, 1)
str = replace(str, "where", "where", 1, -1, 1)
str = replace(str, "insert", "insert", 1, -1, 1)
str = replace(str, "delete", "delete", 1, -1, 1)
str = replace(str, "update", "update", 1, -1, 1)
str = replace(str, "like", "like", 1, -1, 1)
str = replace(str, "drop", "drop", 1, -1, 1)
str = replace(str, "create", "create", 1, -1, 1)
str = replace(str, "modify", "modify", 1, -1, 1)
str = replace(str, "rename", "rename", 1, -1, 1)
str = replace(str, "alter", "alter", 1, -1, 1)
str = replace(str, "cast", "cast", 1, -1, 1)
str = replace(str, chr(34), """, 1, -1, 1)
formatInput = str
end function
Ví dụ minh họa bằng trang Login.htm
Code:
- Code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login</title>
</head>
<body>
<form action="Login.asp" method="get">
Username: <input type="text" name="UserName" id="UserName" size="16" maxlength="16" />
Password: <input type="password" name="Password" id="Password" size="16" maxlength="16" />
<input type="submit" value="Login" />
</form>
</body>
</html>
1 phần code trang Login.asp
Code:
- Code:
<%
private function formatInput(byval str)
str = replace(str, "'", "", 1, -1, 1)
str = replace(str, "-", "", 1, -1, 1)
str = replace(str,"""", "", 1, -1, 1)
str = replace(str, "<", "<", 1, -1, 1)
str = replace(str, ">", ">", 1, -1, 1)
str = replace(str, "[", "[", 1, -1, 1)
str = replace(str, "]", "]", 1, -1, 1)
str = replace(str, "=", "", 1, -1, 1)
str = replace(str, "select", "select", 1, -1, 1)
str = replace(str, "join", "join", 1, -1, 1)
str = replace(str, "union", "union", 1, -1, 1)
str = replace(str, "where", "where", 1, -1, 1)
str = replace(str, "insert", "insert", 1, -1, 1)
str = replace(str, "delete", "delete", 1, -1, 1)
str = replace(str, "update", "update", 1, -1, 1)
str = replace(str, "like", "like", 1, -1, 1)
str = replace(str, "drop", "drop", 1, -1, 1)
str = replace(str, "create", "create", 1, -1, 1)
str = replace(str, "modify", "modify", 1, -1, 1)
str = replace(str, "rename", "rename", 1, -1, 1)
str = replace(str, "alter", "alter", 1, -1, 1)
str = replace(str, "cast", "cast", 1, -1, 1)
str = replace(str, chr(34), """, 1, -1, 1)
formatInput = str
end function
strUserName = formatInput(Trim(Mid(Request.QueryString("UserName"), 1, 10)))
strPassWord = formatInput(Trim(Mid(Request.QueryString("PassWord"), 1, 16)))
Response.write("Wellcome:"& strUserName)
%>
Giả định kịch bản đăng nhập
1. Người dùng duyệt trang login.htm để đăng nhập
2. Truy vấn được gửi đến trang login.asp để xử lý
3. Tại trang login.asp UserName và Pasword đã được "lọc" thông qua hàm formatInput
2. Mã hóa mã nguồn web khi đặt trên host với Window Script Encoder:
[You must be registered and logged in to see this link.]
3. Ví dụ 1 trang ranking sử dụng .xml để lưu thông tin nhân vật và tự động cập nhật mỗi giờ
[You must be registered and logged in to see this link.]