Web7: SQL injection - Các cách phòng chống & kết luận

Web7: SQL injection - Các cách phòng chống và kết luận Các chuyên đề nhỏ cùng chủ đề: Web1: SQL injection - Con đường khai thác phổ biến : q...

Web7: SQL injection - Các cách phòng chống và kết luận

Các chuyên đề nhỏ cùng chủ đề:

Web1: SQL injection - Con đường khai thác phổ biến : qua “user input”
Web2: SQL injection - Các con đường khai thác khác
Web3: SQL injection - Kỹ thuật khai thác: Các hướng khai thác
Web4: SQL injection - Kỹ thuật khai thác: Các bước khai thác
Web5: SQL injection - Kỹ thuật khai thác: Một số kỹ thuật vượt qua cơ chế lọc
Web6: SQL injection - Một số tools khai thác
Web7: SQL injection - Các cách phòng chống & Kết luận.

============================================
Các cách phòng chống
Trong các bài viết trước, tôi đã trình bày về cách thức tấn công, các kĩ thuật bypass để khai thác lỗ hổng SQL injection. Ở bài viết này, tôi sẽ nói về cách phòng chống lỗ hổng nguy hiểm này.

Ngay từ khái niệm, chúng ta đã có thể biết được cách phòng chống hiệu quả Sql injection chính là việc kiểm tra kỹ càng tham số đầu vào. Những tham số mà từ đó người lập trình website sử dụng để xây dựng lên câu truy vấn tới cơ sở dữ liệu.

Công việc kiểm tra tham số đầu vào (áp dụng phòng tránh lỗi Sql injection) nên được tiến hành theo nhiều tầng:

  • Client: javascript (có thể bypass bằng các phần mềm tamper)
  • Server: C#, php, jsp
- Kiểm tra kiểu của dữ liệu: đối với dữ liệu kiểu số, kiểu chuỗi … chúng ta phải có những hàm validate tương ứng.

o Nếu là kiểu int:

  • ASP.NET: Int32.Parse(/*Param*/);
  • PHP: is_numeric($var), is_int($var), is_integer($var)...
o Nếu là kiểu chuỗi:
  • Thiết lập độ dài tối đa cần thiết: length <= MAX_LENGTH
  • Lọc bỏ ký tự nguy hiểm (bao gồm các meta characters trong DBMS), lọc bỏ các từ khóa như union, select, order, information_schema, insert, drop, load_file… (sử dụng các hàm như mysql_real_escape_string(), preg_replace()…)
Ví dụ:
Mã nguồn PHP:
<?php
$id 
mysql_real_escape_string($_GET['id']);$query mysql_query("SELECT * FROM table where id = "' .$id. '");
?>
Mã nguồn PHP:
<?php
$id 
preg_replace("/[^0-9]/",""$_GET['id']);$query mysql_query("SELECT * FROM table where id = "' .$id. '");
?>
  • Kiểm tra xem định dạng chuỗi: email, username, password… đều có một định dạng nhất định, do đó có thể viết các biểu thức chính qui (Regular Expression) cho mỗi định dạng này.
[INDENT=2]C#: System.Text.RegularExpressions;
PHP: preg_match(); ...
Java: Pattern.matcher(); ...[/INDENT]
o Sử dụng các thư viện hỗ trợ:

  • C#: Parameters
[INDENT=2]cmd.Parameters.Add("@var", SqlDbType.Int);
cmd.Parameters["@var"].Value = input;[/INDENT]
o Phân quyền SQL

  • Tài khoản sử dụng cho ứng dụng web trong cơ sở dữ liệu dĩ nhiên phải có quyền đọc. Nhưng khi thực hiện thao tác thêm bài viết, thêm user thì nó phải cần thêm quyền ghi nữa. Do đó, tùy vào mỗi trường hợp mà ta thiết lập role phù hợp cho mỗi tài khoản web tương tác với cơ sở dữ liệu. Với những ứng dụng web thông thường, tài khoản cho ứng dụng web trong SQL SERVER nên chỉ được thiết lập quyền đọc (SELECT) (db_datareader) và quyền ghi (INSERTUPDATE) (db_datawriter) như vậy sẽ không có quyền xóa một table.

Kết luận

SQL injection luôn được đánh giá là một trong những lỗ hổng bảo mật web nguy hiểm nhất trong nhiều năm qua. Do đó, đối với những người lập trình web cần hiểu rõ nguyên nhân và cách khắc phục sao cho hiệu quả. Những người quản trị cần có những cấu hình cần thiết để trách nguy cơ và giảm thiểu tác hại trong trường hợp ứng dụng web có lỗi có thể khai thác SQL Injection.

Các kỹ thuật tấn công, bypass trên đây, tùy vào những trường hợp cụ thể mà có những cách áp dụng khác nhau. Do tính chất đặc thù trong mỗi trường hợp cụ thể nên loạt bài viết không thể bao quát hết được tất cả các kỹ thuật. Với sự phát triển của các ứng dụng firewall (WAF) có thể những cách bypass nêu trên sẽ không còn hiệu quả nữa.

Loạt bài viết có tham khảo từ một số nguồn:

COMMENTS

Tên

.:: Connect Trojan ::.,111,.htaccess,2,0-day,3,2017,2,Add-on,16,Affiliate,1,Anotador,1,AutoIT,17,BackDoor,1,Bán Sách,13,banhangonline,1,Bảo Mật,171,Bất Động Sản Tại Tiền Giang,5,Bestsellers,13,Binder,1,blog,31,Blogger,4,Blogger Template,1,Botnet,3,Brute,1,Bug Bounty,1,Bypass,10,camera,1,ceh,1,Châu Tinh Trì,2,Checked,6,Chrome,21,Code,5,coin hive,1,Coin-Hive,2,CoinHive,1,Connect Trojan,342,Connect Trojan ::.,1,Cổ Tích,2,Crack,3,Crypto,5,CSRF,5,CSS,2,Cuộc Sống,1,Dau tu,8,DDoS,6,Designer,1,Dich vụ,1,DNS,4,Download,2,du-an,3,DVD LUMION Tiếng Việt của anh Dũng Già Pro,1,Đam Mỹ,1,điện,1,Đồ Họa,215,Đô Thị,16,e11.me,1,ebook,16,ebook free,295,eBook Phệ Hồn Nghịch Thiên,1,eBook Thịnh Thế Địch Phi,1,Encrypt,1,Encryption,1,epub,76,epub [Tiên hiệp],1,ET-Logger,1,exploit,23,Exploitation,1,Extractor,2,facebook,69,FireFox,15,Flood,2,Forensic,7,full prc,2,game,177,Gerador,3,Gerenciador,1,Get Root,3,GHDB,3,Giả Tưởng,1,giaitri,1,Google,15,H&Y Shop,2,Hacker,3,Hacking,16,Hacking and Security,6,Hacking Tools,36,Hành Động,3,He Thong Site Phim,25,Hijacking,6,Hình Sự,1,hivecoin.hive coin,1,Hỏi Xoáy Đáp Xoay Trên VTV3,1,HTML,1,Huyền Ảo,92,Hướng dẫn Internet cơ bản,1,IFTTT,703,Imgur,2,Infographic,1,Information Disclosure,1,Internet Explorer,3,IT News,39,J2TeaM,29,J2TeaM Tools,9,JavaScript,6,Javascript Injection,3,Juno_okyo's Blog,23,Khóa Học,32,Khóa Học kiếm tiền online với accesstrade,5,khoá học miễn phí,16,Khóa học Photoshop,19,Khóa học sử dụng mã độc và phòng chống mã độc,2,Khoa Huyễn,6,khuyến mãi,16,kiemhiep,9,Kiếm Hiệp,20,Kiếm Tiền MMO,34,kiếm tiền rút gọn link,1,KilerRat,1,Kinh Dị,24,Kinh Dị - Ma,4,Kinh Doanh,73,kinhdi,1,kinhdoanh,5,KRACK Attacks,1,Lãng mạn,1,lazada,1,Lập trình,2,Lịch Sử,5,Linux,1,Local Attack,2,Logins/Cadastro,1,Lỗi Web,1,Lược Sử Hacker,2,Mã Giảm Giá,2,Mã Hóa,48,Malware,3,Master-Code,31,Máy Tính,1,Metasploit,2,Microsoft,4,mobile hacking,2,monero,1,Movie,25,MySQL,1,NEW PRODUCTS,19,NGHỆ THUẬT ẨN MÌNH,13,ngontinh,10,Ngôn Tình,151,nhà đất,1,Nhà Đất Gò Công,1,Nhân Vật Lịch Sử,2,Nhật Bản,1,Nhựt Trường Group,1,NjRat,5,Nước,1,open redirect,1,Oracle,1,Path Disclosure,2,pdf,76,Pen-Test,6,Pentest Box,9,Phan mem Internet,1,phanmem,23,phanmemdienthoai,3,phanmemmaytinh,10,phần mềm,11,Phim 18,2,Phim 2012,1,Phim 3D,1,Phim Âm Nhạc,2,Phim Bộ,39,Phim Chiến Tranh,5,Phim Dã Sử - Cổ Trang,6,Phim Đài Loan,6,Phim Đề Cử,4,Phim Hài Hước,26,Phim Hàn Quốc,33,Phim HD Chất Lượng Cao,5,Phim Hoạt Hình,2,Phim Hot,1,Phim Hồng Kông,20,Phim HQ,2,Phim Kinh Dị,8,Phim lẻ,4,Phim Mới 2011,2,Phim Mới 2012,1,Phim Mới 2015,1,Phim Nhật Bản,4,Phim SD,3,Phim Thái Lan,6,Phim Thần Thoại,4,Phim Tình Cảm,35,Phim Trung Quốc,37,Phim Truyền Hình,19,Phim Viễn Tưởng,1,Phim Võ Thuật,36,Phim Xã Hội Đen,1,Phishing,5,PHP,16,Plugin,1,Port,1,post mẫu,1,prc,77,Programming,15,Python,1,Quảng Cáo,1,rat,457,Recovery,3,Remote Code Execution,1,Remote Desktop,1,Reverse Engineering,6,review,3,rút gọn link,1,sach,47,Sách,35,Sách Nghệ Thuật Sống,12,sách nói,1,Sách Tâm Linh,1,Sách Tiếng Anh,2,sachiep,2,Sản Phẩm,1,Sắc Hiệp,16,Scam,1,Scanner,10,Security,66,SEO,5,share,1,Shell,5,shop,1,Social Engineering,4,Software,22,Source Unity,1,SQL injection,21,Sức Khỏe,1,Symlink,3,Tài Chính,1,Tài chính cá nhân,2,Tài Liệu,1,Tản mạn,7,Taudio,2,Tâm lý xã hội,1,tấn công,1,Testador,1,Thái Lan,2,Tham Khảo,3,thamkhao,11,them,1,Thiệp Cưới,1,Thiết Kế Web,30,Thời Trang,2,Thủ Thuật Hacking,53,Thuyết Minh,1,tienhiep,5,Tiên Hiệp,123,Tiểu Thuyết,94,tiki,3,TIL,8,Tin Tức,52,Tips,39,tool,1,Tool Hack,14,Tools,9,Tổng Hợp,1,Tricks,26,Trinh thám,1,trojan original,48,Trọng sinh,11,Trộm mộ,1,Trung Quốc,1,Truyện,1,Trương Định,110,Tu Chân,2,TUTORIALS,124,Twitter,1,Ung_Dung,4,Upload,1,usb,1,vanhoc,11,văn học,6,vBulletin,7,video,16,Vietsub,1,Việt Nam,4,Virus,4,Võ Thuật,3,Võng Du,5,Vulnerability,19,Web Developer,15,webmau,5,WHMCS,3,WiFi,2,wiki lỗi máy tinh,1,wiki lỗi NTG,3,Windows,12,WordPress,43,Write-up,11,XSS,16,Yahoo,1,yeah1offer,1,youtube,11,
ltr
item
NhutTruong.Com - Chia sẻ kiến thức miễn phí: Web7: SQL injection - Các cách phòng chống & kết luận
Web7: SQL injection - Các cách phòng chống & kết luận
NhutTruong.Com - Chia sẻ kiến thức miễn phí
https://www.nhuttruong.com/2016/10/web7-sql-injection-cac-cach-phong-chong.html
https://www.nhuttruong.com/
https://www.nhuttruong.com/
https://www.nhuttruong.com/2016/10/web7-sql-injection-cac-cach-phong-chong.html
true
7607280272436897486
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content