1 @Thực hành PowerPoint @Thực hành PowerPoint Thiết kế Bài giảng điện tử 02/02/15 2 Tạo trang tìm kiếm thông tin Tạo trang tìm kiếm thông tin <?php require("condb.php"); if (isset($_POST["submit"])){ $Masv=$_POST['MaSV']; $sql=mysql_query("select Masv,Tensv from sinhvien where Masv='". $Masv."'"); }else{ $sql=mysql_query("select Masv,Tensv from sinhvien"); } ?> 02/02/15 3 Tạo trang tìm kiếm thông tin Tạo trang tìm kiếm thông tin <form action="timkiem.php" method="post"> Mã sinh viên : <input type="text" name="MaSV" /> <input type="submit" value="tìm kiếm" name="submit" /> </form> <table border=1 cellspacing=0 bordercolor=silver width=340> <TR bgcolor=silver> <td align=center>STT</td> <td align=center>Họ Tên</td> </tr> <?php while ($row=mysql_fetch_array($sql)){ ?> <tr> <td><?php echo $row['Masv'];?> </td> <td><?php echo $row['Tensv'];?></td> </tr> <?php } ?> </table> Bảo mật trong PHP Bảo mật trong PHP • Bảo mật trong PHP phải chú ý đến 3 nguy hiểm chính: Bảo mật trong PHP phải chú ý đến 3 nguy hiểm chính: – Cross site scripting : Để khắc phục nên dùng các hàm str_replace , strip_tags , htmlspecialchars , htmlentities vvv để tránh việc gọi hoặc chèn các đoạn mã không mong muốn – SQL injection: Lỗi này chạy yêu cầu thực thi SQL không mong muốn. Để chống lại tham khảo nhóm hàm addslashes – Buffer overflow in Mysql : Cái này thường thấy ở PHP site Việt Nam. Dữ liệu được đưa vào không kiểm tra khiến ngập lụt, gây quá tải cho server hoặc thừa chồng chéo trong Database. Hãy dùng Capcha Image để chống hoặc 1 cách tương tự mà bạn phát triển lên Test lỗi khi submit Một số loại dữ liệu khác mà cũng nên thử submit để biết xem trang web có gặp lỗi hay không: ' or 1=1 " or 1=1 or 1=1 ' or 'a'='a " or "a"="a ') or ('a'='a Cách ngăn chặn • Sử dụng hàm addslashes dùng để xử lý các biến trước khi đưa vào câu Query sử dụng • Ví dụ: addslashes ($_POST[‘username’]); Lỗi các tham số khi liên kết • Thông thường thì để kiểm tra lỗi SQL injection ở dạng thứ nhất ta thường thêm dấu ‘(dấu nháy) vào phía sau các địa chỉ truyền tham số dạng “user.php?id=”. • Ví dụ: http://localhost/web/hienthi.php?masv=sv01’hoặc http://localhost/web/hienthi.php? masv=’ Viết hàm khắc phục lỗi <?php function quote( $value ) { if( get_magic_quotes_gpc() ){ $value = stripslashes( $value ); } //check if this function exists if( function_exists( "mysql_real_escape_string" ) ){ $value = mysql_real_escape_string( $value ); } else{ $value = addslashes( $value ); } return $value; } ?> . $row['Tensv'];?></td> </tr> < ?php } ?> </table> Bảo mật trong PHP Bảo mật trong PHP • Bảo mật trong PHP phải chú ý đến 3 nguy hiểm chính: Bảo mật trong PHP phải chú ý đến 3 nguy hiểm. chỉ truyền tham số dạng “user .php? id=”. • Ví dụ: http://localhost/web/hienthi .php? masv=sv01’hoặc http://localhost/web/hienthi .php? masv=’ Viết hàm khắc phục lỗi < ?php function quote( $value. Tên</td> </tr> < ?php while ($row=mysql_fetch_array($sql)){ ?> <tr> <td>< ?php echo $row['Masv'];?> </td> <td>< ?php echo $row['Tensv'];?></td> </tr> < ?php }