Nội dung Bảo mật với PHP & Mysql Phần 2
Như ta thường biết , để đưa bất cứ dữ liệu từ người sử dụng vào CSDL ta đều
thông qua dạng truyền biến form HTML , gồm nhiều dạng và nhiều cách khác nhau .
Như ta thường biết , để đưa bất cứ dữ liệu từ người sử dụng vào CSDL ta đều
thông qua dạng truyền biến form HTML , gồm nhiều dạng và nhiều cách khác nhau .
Vì thế lỗi cũng rất nhiều nếu ta không kịp ngăn chặn , có thể dẫn đến những
hậu quả khó lường.
Dù truyền biến dạng POST , GET thì lỗi vẫn có . Và lỗi nghiêm trọng là dùng các
biến ẩn để so sánh hoặc thực thi một mệnh đề logic nào đó .
Ví dụ bạn làm 1 biến ẩn như password , email ... thì kẻ tấn công có thể view
source của bạn , thay đổi các trường và thay đổi luôn action . Vì thế nếu lỗi
thì kẻ tấn công có thể tấn công trực tiếp từ những lỗi này với vài thủ thuật nêu
trên .
Cách khắc phục : Không đặt những biến ẩn với mục đích so sánh hay thực thi
mệnh đề logic .
Nếu bạn lập trình đưa trực tiếp các biến vào thẳng CSDL mà không thông qua một
bước kiểm tra nào đó thì nguy hiểm .
Các nguy hiểm có thể xảy ra :
- Cross site scripting
- SQL injection
- Buffer overflow in Mysql
Vì vậy bước kiểm tra các biến vào hết sức quan trọng .
Cách khắc phục :
- Cross site scripting : Để khắc phục lỗi này , bạn nên xử lý biến vào theo
kiểu chặn các tag HTML các hàm PHP hổ trợ làm việc đó : str_replace , strip_tags
, htmlspecialchars , htmlentities ... ( tham khảo thêm về các hàm sử lý chuỗi )
để xử lý các tag như < > chuyển sang mã HTML hay thêm ký tự nào vào , .... ,
thay thế các text như onmouseover , onload ...
- SQL injection : các biến đưa vào thường nguy hiểm nếu ``dính`` dấu ` , ````
hoặc # , vì thế cách khắc phục cũng như trên hoặc thêm hàm addslashes .
- Buffer overflow in Mysql : cái này thường nghiêm trọng , khi bạn đưa biến vào
CSDL mà không chống flood thì kẻ tấn công cò thể fresh trình duyệt web hoặc dùng
những script tấn côngf từ server , host hay localhost khác , làm tràn server .
Khiến tắt nghẽn ... và server có thể cắt host bạn như chơi .
Cách khắc phục , so sánh biến nhập vào trùng hay thơi gian ... nói chung có
nhiều cách để làm việc này , hiệu quả và nhanh thì dùng hàm header sau khi
submit . ( Nếu bạn lập trình dùng hàm mysql_fetch_array , cũng dễ bị tràn server
, lý do gôm dữ liệu vào mảng nếu nhiều record thì thế nào ... vì thế bạn có thể
chuyển qua dùng mysql_result , nó lấy dữ liệu theo filed và column )
Lưu ý về dạng upload file : cái này cũng quan trọng không kém , vì thế bạn
phải kiểm tra dạng file gì khi được upload vì không sẽ có thể làm host của bạn
dính backdoor . Source Bảo mật với PHP & Mysql Phần 2: ThongTinBaoMat.Com,Tác giả php.net.vn Bảo mật với PHP & Mysql Phần 2 Tags Bảo | mật | ứng | dụng | Web | | | với Những bài viết tương tự Bảo mật với PHP & Mysql Phần 2: Những thao tác cơ bản để xóa bỏ phần mềm bảo mật giả mạo | Bảo mật với PHP & Mysql Phần 1 | Bảo mật với PHP & Mysql Phần 2 | Bảo mật với PHP và Mysql phần 03 | Phần mềm miễn phí bảo vệ máy tính và sự riêng tư | 5 mẹo giúp bảo vệ dữ liệu khỏi bị xâm phạm | Báo động tình trạng bảo mật server | Android và iOS bảo mật tốt hơn hệ điều hành PC | 3 thiếu sót về bảo mật của Google+ | IBM giới thiệu công cụ bảo mật AppScan |