Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ungkapan biasa PHP untuk mengesahkan aksara khas biasa

Ungkapan biasa PHP untuk mengesahkan aksara khas biasa

WBOY
WBOYasal
2023-06-24 11:11:511501semak imbas

Aksara khas yang biasa digunakan untuk pengesahan ungkapan biasa PHP

Dalam pengaturcaraan, kita selalunya perlu mengesahkan data yang dimasukkan oleh pengguna. Dalam PHP, ungkapan biasa boleh memenuhi keperluan ini dengan mudah. Walau bagaimanapun, disebabkan oleh pelbagai jenis data yang dimasukkan oleh pengguna, kadangkala kita perlu memberi perhatian khusus kepada pengesahan aksara khas untuk memastikan kesahihan dan keselamatan data.

Julat aksara khas sangat luas, seperti teg HTML, alamat URL, teg XML, pernyataan SQL, dll. semuanya adalah aksara khas. Watak-watak ini boleh menjejaskan pelaksanaan program, atau dieksploitasi secara tidak wajar untuk menyebabkan kelemahan keselamatan. Oleh itu, kita perlu mengetahui aksara khas yang biasa digunakan dan menggunakan ungkapan biasa PHP untuk pengesahan.

  1. Teg HTML

Teg HTML ialah elemen penting dalam halaman web. Walau bagaimanapun, jika tidak ditapis dengan betul, tag ini juga boleh dieksploitasi untuk serangan. Ungkapan biasa PHP boleh digunakan untuk mengesahkan dan membersihkan teg HTML. Contohnya, ungkapan biasa berikut boleh mengesahkan sama ada teg HTML disertakan:

if (preg_match('/<(.*)>.*</>|<(.*) />/', $string)) {
    echo "包含HTML标记";
} else {
    echo "没有包含HTML标记";
}

Dalam ungkapan biasa di atas, mewakili padanan dalam kurungan pertama dalam ungkapan biasa dan mewakili pertama Padanan antara dua kurungan.

  1. Aksara Alfanumerik

Aksara Alfanumerik ialah rentetan huruf dan nombor. Dalam sesetengah senario, hanya aksara abjad angka dibenarkan Dalam kes ini, kita boleh menggunakan ungkapan biasa berikut untuk pengesahan:

if (preg_match('/^[a-zA-Z0-9]+$/', $string)) {
    echo "是字母数字字符";
} else {
    echo "不是字母数字字符";
}

Dalam ungkapan biasa di atas, ^ mewakili permulaan rentetan dan $ mewakili Penghujung rentetan, [a-zA-Z0-9] bermaksud memadankan mana-mana huruf atau nombor.

  1. Alamat URL

Dalam aplikasi, selalunya perlu untuk mengesahkan alamat URL yang dimasukkan oleh pengguna. Format alamat URL boleh disahkan dengan menggunakan ungkapan biasa berikut:

if (preg_match('/^http://[a-zA-Z0-9-.]+.[a-zA-Z]{2,3}(/S*)?$/', $url)) {
    echo "URL地址格式正确";
} else {
    echo "URL地址格式错误";
}

Dalam ungkapan biasa di atas, ^ mewakili permulaan rentetan, $ mewakili penghujung rentetan http:// mewakili padanan dengan " Rentetan yang bermula dengan "http://"; [a-zA-Z0-9-.]+ bermaksud memadankan mana-mana huruf, nombor, sempang atau noktah dan nombor itu sekurang-kurangnya 1; [a-zA-Z]{2,3} bermaksud memadankan mana-mana dua atau tiga huruf; (/S*)? bermaksud memadankan padanan garis miring diikuti dengan sebarang bilangan aksara bukan kosong, bahagian ini adalah pilihan.

  1. Teg XML

Dalam dokumen XML, teg dan kandungannya dibentangkan dalam format tertentu. Gunakan ungkapan biasa berikut untuk mengesahkan sama ada format teg XML adalah betul:

if (preg_match('/^<([^/]+?)>.*</>$/', $xml)) {
    echo "XML标签格式正确";
} else {
    echo "XML标签格式错误";
}

Dalam ungkapan biasa di atas, ^ mewakili permulaan rentetan, $ mewakili penghujung rentetan, dan 45a4ae7aeba40d47d42e4a7c594aca96 mewakili padanan mana-mana aksara bukan segaris, kurungan menunjukkan untuk menggunakan bahagian ini sebagai padanan pertama dan merekodkannya; perlawanan. .*f843db1fb947f3a29dc77226e98f1fde

Serangan suntikan SQL
  1. Serangan suntikan SQL ialah kaedah serangan rangkaian biasa Penyerang menyuntik pernyataan SQL ke dalam aplikasi, membenarkan aplikasi melaksanakan operasi berniat jahat. Gunakan ungkapan biasa berikut untuk menapis data yang dimasukkan pengguna untuk mengelakkan serangan suntikan SQL:
function filter_sql($string) {
    // 去除SQL关键字
    $string = preg_replace('/(SELECT|UPDATE|DELETE|DROP|INSERT|ALTER)/i', "", $string);

    // 去除单引号
    $string = str_replace("'", "", $string);

    return $string;
}

Dalam ungkapan biasa di atas,

mewakili sempadan perkataan,

mewakili padanan kata kunci ini, Menunjukkan ketidakpekaan kes. (SELECT|UPDATE|DELETE|DROP|INSERT|ALTER)iApabila menulis aplikasi, kita perlu mempertimbangkan kepelbagaian dan keselamatan data Adalah sangat perlu untuk menggunakan ungkapan biasa PHP untuk mengesahkan dan membersihkan data yang dimasukkan pengguna. Melalui contoh di atas, kita dapat melihat bahawa ungkapan biasa PHP sangat berkuasa dan fleksibel, boleh digunakan dalam pelbagai senario, dan membantu kami memastikan keselamatan dan kebolehpercayaan aplikasi.

Atas ialah kandungan terperinci Ungkapan biasa PHP untuk mengesahkan aksara khas biasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn