Loại bỏ thẻ html và ký tự đặc biệt trong PHP

Nếu bạn làm website tương tác 2 chiều giữa user với nhau thì có thể sẽ bị trường hợp này, đó là XSS(Cross Site Scripting) nôm na là người dùng sẽ nhập các tag đặc biệt. Vidu: trong code .js này sẽ thực thi đoạn code gì đó thì có mà tiêu. Vậy vấn đề của chúng ta là không cho nhập hoặc hiện thị, hoặc không lưu nó vào csdl.

Thiết kế web theo yêu cầu


Cách 1: Dùng strip_tags() đặc biệt của function này là sẽ cho phép các tag nào được sử dụng:

<?php
$text = '<p>Test paragraph.</p><!-- Comment --> 
<a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";

// Allow <p> and <a>
echo strip_tags($text, '<p><a>');
?>


Cách 2: Sẽ bỏ các tag nào được liệt kê:

<?php
function strip_only($str, $tags) {
if(!is_array($tags)) {
$tags = (strpos($str, '>') !== 
false ? explode('>', str_replace('<', '', $tags)) : array($tags));
 if(end($tags) == '') array_pop($tags);
 }
foreach($tags as $tag) $str = 
preg_replace('#</?'.$tag.'[^>]*>#is', '', $str);
    return $str;
}

$str = '<p style="text-align:center">Paragraph</p>
<strong>Bold</strong><br/>
<span style="color:red">Red</span><h1>Header</h1>
<script type="text/javascript" 
src="/zend/mvc/public/templates/webadmin/system/js/ddaccordion.js">
</script>';

echo strip_only($str, array('script'));
echo strip_only($str, '<p><h1>');
?>
Chúc các bạn thành công

 


Bài liên quan

Hàm đặt thuộc tính nofollow cho external link
Get Image for Youtube or Vimeo Videos from URL
Các mã nguồn mở cho website bán hàng online
Khắc phục lỗi 500 - Internal Server Error khi sử dụng .htaccess
Thư viện PHP bạn nên biết khi lập trình
Thêm font cho website với font-face
Tags: loai bo the html, bo ma doc web, strip_tags(), bo ma htnl trong php, loc code

Bài viết cùng chủ đề

Ý kiến của bạn

Trang web còn đang trong quá trình hoàn thiện về nội dung và chức năng mong các bạn hãy ủng hộ tinhoc4vn xin chân thành cảm ơn !

Tham khảo thêm

Back to Top