php过滤特殊危险字符的总结
php过滤特殊危险字符的总结
一般,对于传进来的字符,php教程可以用addslashes函数处理一遍(要get_magic_quotes_gpc()为假才处理,不然就重复转义了!),这样就能达到一定程度的安全要求比如这样
代码如下 复制代码
if (!get_magic_quotes_gpc()) {
add_slashes($_GET);
add_slashes($_POST);
add_slashes($_COOKIE);
}
function add_slashes($string) {
if (is_array($string)) {
foreach ($string as $key => $value) {
$string[$key] = add_slashes($value);
}
} else {
$string = addslashes($string);
}
return $string;
}
但是还可以更进一步进行重新编码,解码,如下:
代码如下 复制代码
//编码
function htmlencode($str) {
if(empty($str)) return;
if($str=="") return $str;
$str=trim($str);
$str=str_replace("&","&",$str);
$str=str_replace(">",">",$str);
$str=str_replace("<","<",$str);
$str=str_replace(chr(32)," ",$str);
$str=str_replace(chr(9)," ",$str);
$str=str_replace(chr(34),"&",$str);
$str=str_replace(chr(39),"'",$str);
$str=str_replace(chr(13),"
",$str);
$str=str_replace("'","''",$str);
$str=str_replace("select","select",$str);
$str=str_replace("join","join",$str);
$str=str_replace("union","union",$str);
$str=str_replace("where","where",$str);
$str=str_replace("insert","insert",$str);
$str=str_replace("delete","delete",$str);
$str=str_replace("update","update",$str);
$str=str_replace("like","like",$str);
$str=str_replace("drop","drop",$str);
$str=str_replace("create","create",$str);
$str=str_replace("modify","modify",$str);
$str=str_replace("rename","rename",$str);
$str=str_replace("alter","alter",$str);
$str=str_replace("cast","cas",$str);
return $str;
}
这样就能更放心的对外来数据进行入库处理了, 但是从数据库取出来,在前台显示的时候,必须重新解码一下:
代码如下 复制代码
//解码
function htmldecode($str) {
if(empty($str)) return;
if($str=="") return $str;
$str=str_replace("select","select",$str);
$str=str_replace("join","join",$str);
$str=str_replace("union","union",$str);
$str=str_replace("where","where",$str);
$str=str_replace("insert","insert",$str);
$str=str_replace("delete","delete",$str);
$str=str_replace("update","update",$str);
$str=str_replace("like","like",$str);
$str=str_replace("drop","drop",$str);
$str=str_replace("create","create",$str);
$str=str_replace((www.111cn.net)"modify","modify",$str);
$str=str_replace("rename","rename",$str);
$str=str_replace("alter","alter",$str);
$str=str_replace("cas","cast",$str);
$str=str_replace("&","&",$str);
$str=str_replace(">",">",$str);
$str=str_replace("<","<",$str);
$str=str_replace(" ",chr(32),$str);
$str=str_replace(" ",chr(9),$str);
$str=str_replace("&",chr(34),$str);
$str=str_replace("'",chr(39),$str);
$str=str_replace("
",chr(13),$str);
$str=str_replace("''","'",$str);
return $str;
}
虽然多了一步编码,解码的过程,但是安全方面,会更进一步,要如何做,自己取舍吧。
再附一些
代码如下 复制代码
function safe_replace($string) {
$string = str_replace(' ','',$string);
$string = str_replace(''','',$string);
$string = str_replace(''','',$string);
$string = str_replace('*','',$string);
$string = str_replace('"','"',$string);
$string = str_replace("'",'',$string);
$string = str_replace('"','',$string);
$string = str_replace(';','',$string);
$string = str_replace(' $string = str_replace('>','>',$string);
$string = str_replace("{",'',$string);
$string = str_replace('}','',$string);
return $string;
}
更全面的
代码如下 复制代码
//处理提交的数据
function htmldecode($str) {
if (empty ( $str ) || "" == $str) {
return "";
}
$str = strip_tags ( $str );
$str = htmlspecialchars ( $str );
$str = nl2br ( $str );
$str = str_replace ( "?", "", $str );
$str = str_replace ( "*", "", $str );
$str = str_replace ( "!", "", $str );
$str = str_replace ( "~", "", $str );
$str = str_replace ( "$", "", $str );
$str = str_replace ( "%", "", $str );
$str = str_replace ( "^", "", $str );
$str = str_replace ( "^", "", $str );
$str = str_replace ( "select", "", $str );
$str = str_replace ( "join", "", $str );
$str = str_replace ( "union", "", $str );
$str = str_replace ( "where", "", $str );
$str = str_replace ( "insert", "", $str );
$str = str_replace ( "delete", "", $str );
$str = str_replace ( "update", "", $str );
$str = str_replace ( "like", "", $str );
$str = str_replace ( "drop", "", $str );
$str = str_replace ( "create", "", $str );
$str = str_replace ( "modify", "", $str );
$str = str_replace ( "rename", "", $str );
$str = str_replace ( "alter", "", $str );
$str = str_replace ( "cast", "", $str );
$farr = array ("//s+/", //过滤多余的空白
"/]*?)>/isU", //过滤 <script> "/(<[^>]*)on[a-zA-Z]+/s*=([^>]*>)/isU" )//过滤javascript的on事件 <br> ; <br> $tarr = array (" ", "", //如果要直接清除不安全的标签,这里可以留空 <br> "" ); <br> return $str; <br> }<br> <br> from:http://www.111cn.net/phper/phpanqn/55876.htm </script>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Gunakan fungsi Java's Character.isDigit() untuk menentukan sama ada aksara ialah aksara angka diwakili dalam bentuk kod ASCII secara dalaman dalam komputer Setiap aksara mempunyai kod ASCII yang sepadan. Antaranya, nilai kod ASCII yang sepadan dengan aksara angka 0 hingga 9 masing-masing adalah 48 hingga 57. Untuk menentukan sama ada aksara ialah nombor, anda boleh menggunakan kaedah isDigit() yang disediakan oleh kelas Aksara dalam Java. Kaedah isDigit() adalah daripada kelas Aksara

Cara menggunakan AutoCorrect untuk menaip anak panah dalam Word Salah satu cara terpantas untuk menaip anak panah dalam Word ialah menggunakan pintasan AutoCorrect yang dipratentukan. Jika anda menaip jujukan aksara tertentu, Word secara automatik menukar aksara tersebut kepada simbol anak panah. Anda boleh melukis banyak gaya anak panah yang berbeza menggunakan kaedah ini. Untuk menaip anak panah dalam Word menggunakan AutoCorrect: Gerakkan kursor anda ke lokasi dalam dokumen yang anda mahu anak panah itu muncul. Taipkan salah satu daripada gabungan aksara berikut: Jika anda tidak mahu apa yang anda taip diperbetulkan kepada simbol anak panah, tekan kekunci ruang belakang pada papan kekunci anda untuk

Papan kekunci fizikal atau angka anda menyediakan bilangan pilihan aksara yang terhad di permukaan. Walau bagaimanapun, terdapat beberapa cara untuk mengakses huruf beraksen, aksara khas dan banyak lagi pada iPhone, iPad dan Mac. Papan kekunci iOS standard memberi anda akses pantas kepada huruf besar dan huruf kecil, nombor standard, tanda baca dan aksara. Sudah tentu, terdapat banyak watak lain. Anda boleh memilih daripada huruf dengan diakritik kepada tanda soal terbalik. Anda mungkin terjumpa watak istimewa yang tersembunyi. Jika tidak, berikut ialah cara untuk mengaksesnya pada iPhone, iPad dan Mac. Cara Mengakses Aksara Lanjutan pada iPhone dan iPad Mendapatkan aksara lanjutan pada iPhone atau iPad anda adalah sangat mudah. Dalam "Maklumat", "

Memaparkan aksara Cina dengan betul dalam matplotlib adalah masalah yang sering dihadapi oleh ramai pengguna Cina. Secara lalai, matplotlib menggunakan fon Inggeris dan tidak boleh memaparkan aksara Cina dengan betul. Untuk menyelesaikan masalah ini, kita perlu menetapkan fon Cina yang betul dan menggunakannya pada matplotlib. Di bawah ialah beberapa contoh kod khusus untuk membantu anda memaparkan aksara Cina dengan betul dalam matplotlib. Pertama, kita perlu mengimport perpustakaan yang diperlukan: importmatplot

Superskrip ialah aksara atau aksara, sama ada huruf atau nombor, yang anda perlu tetapkan sedikit di atas baris teks biasa. Sebagai contoh, jika anda perlu menulis 1, huruf st perlu lebih tinggi sedikit daripada aksara 1. Begitu juga, subskrip ialah sekumpulan aksara atau aksara tunggal dan perlu ditetapkan lebih rendah sedikit daripada tahap teks biasa. Sebagai contoh, apabila anda menulis formula kimia, anda perlu meletakkan nombor di bawah garis biasa aksara. Tangkapan skrin berikut menunjukkan beberapa contoh pemformatan superskrip dan subskrip. Walaupun ia mungkin kelihatan seperti tugas yang sukar, menggunakan pemformatan superskrip dan subskrip pada teks anda sebenarnya agak mudah. Dalam artikel ini, kami akan menerangkan dalam beberapa langkah mudah cara memformat teks dengan mudah menggunakan superskrip atau subskrip. Harap anda seronok membaca artikel ini. Cara menggunakan superskrip dalam Excel

Cara menggunakan Golang untuk menentukan sama ada aksara ialah huruf Dalam Golang, menentukan sama ada aksara ialah huruf boleh dicapai dengan menggunakan fungsi IsLetter dalam pakej Unicode. Fungsi IsLetter menyemak sama ada aksara yang diberikan ialah huruf. Seterusnya, kami akan memperkenalkan secara terperinci cara menggunakan Golang untuk menulis kod untuk menentukan sama ada sesuatu aksara itu adalah huruf. Pertama, anda perlu mencipta fail Go baharu untuk menulis kod tersebut. Anda boleh menamakan fail "main.go". kod

Perwakilan aksara kekunci Enter dalam Java ialah `. Dalam Java, ` mewakili aksara baris baharu, dan apabila aksara ini ditemui, output teks akan dibalut. Berikut ialah contoh kod ringkas yang menunjukkan cara menggunakan `` untuk mewakili kekunci Enter: publicclassMain{publicstaticvoidmain(String[]args){System.out.println("Ini ialah baris pertama ini

Dayakan papan kekunci sentuh dalam mod tablet Jika anda mempunyai komputer riba skrin sentuh, anda boleh menggunakan papan kekunci sentuh untuk menaip berbilang aksara khas pada Windows 11. Ini mungkin cara paling mudah untuk menambah aksara khas. Dayakan aksara khas untuk skrin sentuh pada Windows 11: Buka menu Mula dan pilih Tetapan. Apabila Tetapan dibuka, navigasi ke Masa & Bahasa > Menaip > Sentuh Papan Kekunci. Dalam menu Menaip, tandai pilihan "Tunjukkan papan kekunci sentuh apabila tiada papan kekunci tersedia". Dayakan papan kekunci sentuh tanpa mod tablet Satu lagi cara untuk mengakses papan kekunci sentuh ialah dengan memaparkannya pada bar tugas sepenuh masa. Untuk menjadikan papan kekunci sentuh boleh diakses, anda perlu memberitahu Windows 11 untuk memaparkannya. Gunakan langkah berikut: Dari menu Mula, pilih
