-1

我正在尝试在我的 php 字符串中找出 open() 和 close() 的脚本标记。请在下面找到我的代码

public function custom_xss_clean($str){
  if(!preg_match('/(<\/?)(script|html)(>*)/i', $str)){
       return true;
  } else {
    $this->form_validation->set_message('custom_xss_clean','The %s field invalid');
    return false;
  }
}

此代码在在线工具中运行良好,但在我的字符串代码中运行良好

<script>alert(10)</script>

我尝试了很多模式,但没有运气。请提前帮助谢谢。

4

2 回答 2

0

你的意思是你想得到脚本标签之间的一切?

<?php
    preg_match_all("|<[^>]+>(.*)</[^>]+>|U","<script>example: </script><div align=left>this is a test</div>",$out, PREG_PATTERN_ORDER);
    echo '<pre>',
    print_r($out);

如果你在 codeigniter 中寻找 xss_clean 然后点击这个链接点击

于 2017-09-13T09:56:52.547 回答
0

尝试这个

preg_match('/<script>[a-zA-Z0-9 \. \n \t\r \* \\ \* ~`!@#$%^&*()-_+={}\[\]\'":;?\/><.,|]*<\/script>/', $str);

经过测试,您也可以实时查看https://regex101.com/r/ih2C3F/1/

于 2017-09-13T10:09:11.437 回答