일반적인 특수 문자를 확인하는 PHP 정규식

WBOY
풀어 주다: 2023-06-24 15:28:02
원래의
1505명이 탐색했습니다.

자주 사용되는 특수 문자의 PHP 정규 표현식 검증

프로그래밍에서는 사용자가 입력한 데이터를 검증해야 하는 경우가 많습니다. PHP에서는 정규 표현식이 이러한 요구를 쉽게 충족할 수 있습니다. 그러나 사용자가 입력하는 데이터의 종류가 매우 다양하기 때문에 때때로 데이터의 유효성과 보안을 보장하기 위해 특수 문자 확인에 특별한 주의를 기울여야 합니다.

HTML 태그, URL 주소, XML 태그, SQL 문 등과 같이 특수 문자의 범위는 매우 넓습니다. 모두 특수 문자입니다. 이러한 문자는 프로그램 실행에 영향을 미치거나 부적절하게 악용되어 보안 취약점을 유발할 수 있습니다. 따라서 일반적으로 사용되는 특수문자를 알고 PHP 정규식을 사용하여 검증해야 합니다.

  1. HTML 태그

HTML 태그는 웹 페이지의 필수 요소입니다. 그러나 제대로 필터링되지 않으면 이러한 태그가 공격에 악용될 수도 있습니다. PHP 정규 표현식을 사용하여 HTML 태그를 검증하고 정리할 수 있습니다. 예를 들어 다음 정규식은 HTML 태그가 포함되어 있는지 확인할 수 있습니다.

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

위 정규식에서 는 정규식 < /code의 첫 번째 괄호 내 일치 항목을 나타냅니다. > 두 번째 괄호 안의 일치 항목을 나타냅니다. <code>表示正则表达式中第一个圆括号内的匹配项,则表示第二个圆括号内的匹配项。

  1. 字母数字字符

字母数字字符是指由字母和数字组成的字符串。在一些场景下,只允许使用字母数字字符,这时候我们可以使用如下正则表达式进行验证:

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

上述正则表达式中,^表示字符串的开头,$表示字符串的结尾,[a-zA-Z0-9]表示匹配任意一个字母或数字。

  1. URL地址

在应用中,常常需要对用户输入的URL地址进行验证。使用如下正则表达式可以验证URL地址的格式:

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

上述正则表达式中,^表示字符串的开头,$表示字符串的结尾;http://表示匹配以“http://”开头的字符串;[a-zA-Z0-9-.]+表示匹配任意一个字母、数字、横线或点号,并且数量至少为1;[a-zA-Z]{2,3}表示匹配任意两个或三个字母;(/S*)?表示匹配一个斜杠后面跟着任意数量的非空字符,这个部分可选。

  1. XML标签

在XML文档中,标签和其内容是以一定的格式呈现的。使用如下正则表达式可以验证XML标签的格式是否正确:

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

上述正则表达式中,^表示字符串的开头,$表示字符串的结尾,<([^/]+?)>表示匹配任意一个非斜杠字符,圆括号表示把这个部分作为第一个匹配项并记录下来;.*表示匹配任意数量的字符;</>表示匹配第一个匹配项匹配的字符串。

  1. SQL注入攻击

SQL注入攻击是一种常见的网络攻击方式,攻击者在应用程序中注入SQL语句,从而让应用程序执行恶意的操作。使用如下正则表达式可以过滤用户输入的数据,防止SQL注入攻击:

function filter_sql($string) {
    // 去除SQL关键字
    $string = preg_replace('/(SELECT|UPDATE|DELETE|DROP|INSERT|ALTER)/i', "", $string);

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

    return $string;
}
로그인 후 복사

上述正则表达式中,表示单词的边界,(SELECT|UPDATE|DELETE|DROP|INSERT|ALTER)表示匹配这些关键字,i

    영숫자

    🎜영숫자는 문자와 숫자의 조합을 의미합니다. 일부 시나리오에서는 영숫자 문자만 허용됩니다. 이 경우 확인을 위해 다음 정규 표현식을 사용할 수 있습니다. 🎜rrreee🎜위 정규 표현식에서 ^는 문자열의 시작 부분인 $는 문자열의 끝을 나타내고, [a-zA-Z0-9]는 일치하는 모든 문자 또는 숫자를 나타냅니다. 🎜
      🎜URL 주소🎜🎜🎜애플리케이션에서는 사용자가 입력한 URL 주소를 확인해야 하는 경우가 많습니다. 다음 정규식을 사용하여 URL 주소의 형식을 확인하세요. 🎜rrreee🎜위 정규식에서 ^는 문자열의 시작을 나타내고 $는 끝을 나타냅니다. http://는 "http://"로 시작하는 문자열과 일치함을 의미합니다. [a-zA-Z0-9-.]+는 임의의 문자열과 일치함을 의미합니다. 문자 또는 숫자, 대시 또는 마침표이고 숫자가 1 이상입니다. [a-zA-Z]{2,3}는 두 개 또는 세 개의 문자가 일치함을 의미합니다. ) ?는 슬래시 뒤에 비어 있지 않은 문자가 여러 개 나오는 것을 의미합니다. 이 부분은 선택 사항입니다. 🎜
        🎜XML 태그🎜🎜🎜XML 문서에서는 태그와 해당 내용이 특정 형식으로 표시됩니다. 다음 정규식을 사용하여 XML 태그의 형식이 올바른지 확인하세요. 🎜rrreee🎜위 정규식에서 ^는 문자열의 시작을 나타내고 $는 는 문자열의 끝을 나타냅니다. <([^/]+?)>는 슬래시가 아닌 모든 문자와 일치한다는 의미이며 괄호는 이 부분을 첫 번째 일치 항목으로 가져와 기록한다는 의미입니다. code>.* 는 임의 개수의 문자와 일치한다는 의미입니다. </ >는 첫 번째 일치 항목과 일치하는 문자열과 일치한다는 의미입니다. 🎜
          🎜SQL 주입 공격🎜🎜🎜SQL 주입 공격은 일반적인 네트워크 공격 방법입니다. 공격자는 SQL 문을 응용 프로그램에 주입하여 응용 프로그램이 악의적인 작업을 수행할 수 있도록 합니다. 다음 정규식을 사용하여 사용자가 입력한 데이터를 필터링하면 SQL 주입 공격을 방지할 수 있습니다. 🎜rrreee🎜위 정규식에서 는 단어 (SELECT|UPDATE|DELETE| DROP |INSERT|ALTER)는 이러한 키워드가 일치함을 의미하고, i는 대소문자를 구분하지 않음을 의미합니다. 🎜🎜애플리케이션을 작성할 때 데이터의 다양성과 보안을 고려해야 합니다. 사용자가 입력한 데이터를 확인하고 정리하려면 PHP 정규식을 사용하는 것이 매우 필요합니다. 위의 예를 통해 PHP 정규식은 매우 강력하고 유연하며 다양한 시나리오에 적용될 수 있으며 애플리케이션의 보안과 안정성을 보장하는 데 도움이 된다는 것을 알 수 있습니다. 🎜

위 내용은 일반적인 특수 문자를 확인하는 PHP 정규식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿