09/10/2018, 22:34

xin huong dan ve cach viet file kiemtra bang asp

mình có thử viết file kiem tra quyền d8ang nhập user trong asp ,nhưng bị cái lỗi là:
trang loginasp sẽ action đến file kiemtra.asp kiem tra user &pass có trong CSDl thi cho dang nhap vao trang TTT.asp con nếu sai thì quay lai trang login.asp.nhung lỗi xãy ra là ,nếu mở trình duyệt lên gõ TTT.asp thi vô thẳng luôn
xin anh em chỉ cách khắc phục minh cám on nhiều lắm.
ASP_Like_Me viết 00:43 ngày 10/10/2018
Cái này thì quá dễ. Bạn cần tạo 1 session cho biết là login thành công hay không? Cụ thể nha:
Trong trang kiểm tra: sau khi select trong database xem có username & pass không, nếu có thì có nghĩa là ok & bạn tạo 1 session: Session("logined")="OK" chẳng hạn. Xong redirect qua trang TTT.asp.
Trong trang TTT.asp ở đầu trang bạn sẽ kiểm tra xem user có login chưa, nếu chưa thì bay trở ra, bắt user phải login:
if Session("logined")<>"OK" then
Response.Redirect "login.asp"
end if
Thế là xong!
Đây là trường hợp đơn giản nha. Khi làm thực tế bạn cần kiểm tra thêm SQL Injection đó.
itkit viết 00:43 ngày 10/10/2018
Quote Được gửi bởi ASP_Like_Me
Cái này thì quá dễ. Bạn cần tạo 1 session cho biết là login thành công hay không? Cụ thể nha:
Trong trang kiểm tra: sau khi select trong database xem có username & pass không, nếu có thì có nghĩa là ok & bạn tạo 1 session: Session("logined")="OK" chẳng hạn. Xong redirect qua trang TTT.asp.
Trong trang TTT.asp ở đầu trang bạn sẽ kiểm tra xem user có login chưa, nếu chưa thì bay trở ra, bắt user phải login:
if Session("logined")<>"OK" then
Response.Redirect "login.asp"
end if
Thế là xong!
Đây là trường hợp đơn giản nha. Khi làm thực tế bạn cần kiểm tra thêm SQL Injection đó.
Cái này thì em cũng biết rồi. Nhưng còn cái anh nói là kiểm tra thêm sql ịnection là gì vậy?? Có thể nói rõ hơn không?? Nêu mình lập trình như vậy người ta vẫn có thể vào được mà không cần login hả?? Hay sao?? Chỉ em với. Em chưa hề quen chữ ịnection trước đó
viettech viết 00:44 ngày 10/10/2018
cám ơn nha ,de tui làm thử .....
Hell Fire viết 00:35 ngày 10/10/2018
Dùng SQL-injection thì hackers có thể login mà ko cần biết user + pass. Đơn giản nhất là nhập ( ' or 1=1 -- ) vào field user + pass (bỏ 2dấu ngoặc đơn)
itkit viết 00:35 ngày 10/10/2018
Tui hỏi SQL-injection là gì mà. Tui sử dụng microsoft sql. Vậy có vấn đề gì không??
Tại sao khi nhập (' or 1=1--) vào user, pass thì vào được?? Giải thích rõ ràng tí hen. Thanks trước
ASP_Like_Me viết 00:39 ngày 10/10/2018
Inject là bơm thêm vào, SQL Injection là nhập thêm vào các thành phần phụ nhằm phá hoại hệ thống hay nói đơn giản là dùng để truy cập trái phép hệ thống.
Ví dụ:
Bạn có 1 table tbl_user {username, password} dùng quản lý user đăng nhập.
Để đăng nhập hệ thống user cần nhập username & password và để check bạn sẽ có câu SQL dạng như sau:
sql = "select * from tbl_user where username='" & Request("username") & "' and password='" & Request("password") & "'"
Bình thường user sẽ nhập vào username & password, đúng thì sẽ được đăng nhập hệ thống. Tuy nhiên nếu user nhập vào:
username/password=" ' or ' '=' " (không có cặp ngoặc kép)
Khi đó chuỗi SQL sẽ như sau:
sql = "select * from tbl_user where username=' ' or ' '=' ' and password=' ' or ' '=' '"
Khi đó thì hiển nhiên khi thực thi chuỗi SQL trên thì điều kiện luôn luôn đúng và user có thể truy cập bất hợp pháp tài nguyên hệ thống.
Còn có nhiều hình thức SQL Injection khác nguy hiểm hơn nhiều. Bạn có thể vào Google search & tham khảo thêm nha.
itkit viết 00:47 ngày 10/10/2018
Wow.. hay quá =D>
Nghĩ ra được mấy chiêu này thiệt tuyệt vời lun
viettech viết 00:50 ngày 10/10/2018
tui thiệt bây giờ mới thấy đời phức tạp nghê!

vậy phải làm sao đây
itkit viết 00:36 ngày 10/10/2018
Lên google search đó bạn (tui cũng mới bít thui) trên đó người ta chỉ ra các đoạn sql_injection đó.
Bài liên quan
0