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;
}
?>