xom1b
12-02-12, 06:56 AM
Thấy mấy bạn cứ bàn về bị drop, mình không hiểu sao nếu như web được anti injection nhỉ, vì drop qua game thì khá khó vì những sv của WZ đâu có bị drop. Lâu ko vào diễn đàn thôi thì góp gió thành bão vậy, đồng thời chia sẻ 1 ít kiến thức còm về security SQL :)
Trước hết chạy trigger của bạn GateBol share (ko rõ ai là tác giả :( )
Create trigger [dbo].[Character_DeleteAll]
On [dbo].[Character]
For Delete As
Begin
if (select count(*) from deleted) > 1
begin
rollback transaction
end
End
Tiếp theo =>
Demo trong SQL 2005 config như sau (Ko có SQL 2000 để demo nhưng mò là có vì cái này là security cơ bản, không thể ko có :D)
Đăng nhập SQL với user là sa hoặc vào với mode Windows Authentication
-Tạo 1 user, click chuột phải vào Logins -> new login
Login Name: tên của user ->tùy bạn (ở đây mình đặt là test)
Config như trong hình, điền password, nhớ bỏ ko chọn ô User must change password at next login (chọn thì chỉ đăng nhập đc 1 lần thôi, lần sau phải đổi pass)
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Uploaded with ImageShack.us (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
- Chuyển sang tab Server Roles chọn như trong hình:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Uploaded with ImageShack.us (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
-Sang tab User Mapping chọn như trong hình rồi OK:
Chú ý: nếu bạn có cả DB khác như Event hay Ranking hoặc SCFMuTeam thì tích chọn vào chúng luôn nhé
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Uploaded with ImageShack.us (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Sau đó config server với web của bạn, thay user sa thành tên user bạn vừa tạo, cả pass điền cho đúng nhé :D
Kết quả test khi login với user "test":
Không thể acccess vào DB nào khác trong SQL của bạn :
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Uploaded with ImageShack.us (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Và đây là kết quả drop db:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Uploaded with ImageShack.us (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Nhưng vẫn có thể insert đc và select dữ liệu được: (Nhu cầu thiết yếu phải có :D)
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Uploaded with ImageShack.us (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Và lại không thể drop table được:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Uploaded with ImageShack.us (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Còn sơ suất ở đâu các bạn góp ý :)
P/s: các bạn cần sửa thêm ODBC sử dụng user này để connect SQL như sau
vào Control Panel -> Administrator tools -> Datasource (ODBC), chuyển sang tab System DNS, sửa từng cái bằng cách chọn nó rồi bấm vào Configure, rồi cứ next, đến bước như trong hình thì chọn như trong hình :
(Win 64 bit thì ở thư mục Wow64 trong C:\Windows, các bạn ấn ctrl + F xong gõ odbc vào, thấy file odbc gì gì xong .exe thì chính là nó, sr vì ko dùng win 64 bit)
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Uploaded with ImageShack.us (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Login ID: cái user bạn tạo ở SQL như trên
Password: là cái pass của user đó :D
sau đó cứ next rồi OK thôi
đảm bảo để có thể sử dụng user này 100% trên server vì 1 số tác vụ trên server có thể dùng ODBC để connect với mode Windows Authentication (Mức toàn quyền)
update
UPDATE !
Nếu các bạn làm ODBC theo xom1b, có thể làm các bước tiếp theo sau để user có quyền dùng produce EXE.
Bước 1, chọn Produce cần xử.
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> g (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> g)
Bước 2, check EXE vào user đang dùng.
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> g (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> g)
Trước hết chạy trigger của bạn GateBol share (ko rõ ai là tác giả :( )
Create trigger [dbo].[Character_DeleteAll]
On [dbo].[Character]
For Delete As
Begin
if (select count(*) from deleted) > 1
begin
rollback transaction
end
End
Tiếp theo =>
Demo trong SQL 2005 config như sau (Ko có SQL 2000 để demo nhưng mò là có vì cái này là security cơ bản, không thể ko có :D)
Đăng nhập SQL với user là sa hoặc vào với mode Windows Authentication
-Tạo 1 user, click chuột phải vào Logins -> new login
Login Name: tên của user ->tùy bạn (ở đây mình đặt là test)
Config như trong hình, điền password, nhớ bỏ ko chọn ô User must change password at next login (chọn thì chỉ đăng nhập đc 1 lần thôi, lần sau phải đổi pass)
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Uploaded with ImageShack.us (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
- Chuyển sang tab Server Roles chọn như trong hình:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Uploaded with ImageShack.us (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
-Sang tab User Mapping chọn như trong hình rồi OK:
Chú ý: nếu bạn có cả DB khác như Event hay Ranking hoặc SCFMuTeam thì tích chọn vào chúng luôn nhé
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Uploaded with ImageShack.us (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Sau đó config server với web của bạn, thay user sa thành tên user bạn vừa tạo, cả pass điền cho đúng nhé :D
Kết quả test khi login với user "test":
Không thể acccess vào DB nào khác trong SQL của bạn :
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Uploaded with ImageShack.us (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Và đây là kết quả drop db:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Uploaded with ImageShack.us (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Nhưng vẫn có thể insert đc và select dữ liệu được: (Nhu cầu thiết yếu phải có :D)
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Uploaded with ImageShack.us (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Và lại không thể drop table được:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Uploaded with ImageShack.us (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Còn sơ suất ở đâu các bạn góp ý :)
P/s: các bạn cần sửa thêm ODBC sử dụng user này để connect SQL như sau
vào Control Panel -> Administrator tools -> Datasource (ODBC), chuyển sang tab System DNS, sửa từng cái bằng cách chọn nó rồi bấm vào Configure, rồi cứ next, đến bước như trong hình thì chọn như trong hình :
(Win 64 bit thì ở thư mục Wow64 trong C:\Windows, các bạn ấn ctrl + F xong gõ odbc vào, thấy file odbc gì gì xong .exe thì chính là nó, sr vì ko dùng win 64 bit)
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Uploaded with ImageShack.us (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Login ID: cái user bạn tạo ở SQL như trên
Password: là cái pass của user đó :D
sau đó cứ next rồi OK thôi
đảm bảo để có thể sử dụng user này 100% trên server vì 1 số tác vụ trên server có thể dùng ODBC để connect với mode Windows Authentication (Mức toàn quyền)
update
UPDATE !
Nếu các bạn làm ODBC theo xom1b, có thể làm các bước tiếp theo sau để user có quyền dùng produce EXE.
Bước 1, chọn Produce cần xử.
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> g (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> g)
Bước 2, check EXE vào user đang dùng.
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> g (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> g)