gpt4 book ai didi

php - 查找注入(inject)空格的 PHP 文件

转载 作者:可可西里 更新时间:2023-11-01 12:59:15 25 4
gpt4 key购买 nike

PHP 文件中的空格有时会产生问题,因此我试图找到符合常见问题标准的文件。我正在尝试以递归方式查找所有具有以下一个或两个条件的文件:

1) 不以 < 开头或 #性格。

和/或

2) 不以 > 结尾字符,除非它确实以右大括号结尾,后跟任意数量的换行符。

我认为第一个条件是:$[^<#]

我认为第二个条件是:[ [^>^] | [}\n*^]]

但是,请注意,在我天真的正则表达式中 $^代表文件的开始和结束,而不是文件中的任何行。即使有了这些,假设它们是正确的,我将如何将它们组合起来?像这样?

[$[^<#]] | [[ [^>^] | [}\n*^]]]

然后,将它们放入 grep 中:

grep -r [$[^<#]] | [[ [^>^] | [}\n*^]]] *

显然,这是行不通的 (tm)。有人可以教我如何改正错误吗?谢谢。

这是一个很好的文件:

<?php

?>

这是这样的:

<?php
function someFunc(){
}



这也很好:

#!/usr/bin/php -q
<?php
?>

前导 HTML 很好:

<html>
<?php
echo '</html>';
?>

尾随 HTML 也可以:

<?php
echo '<html>';
?>
</html>

这很糟糕(前导换行符):


<?php

?>

这也很糟糕(前导空格):

‏ <?php

?>

这也很糟糕(尾随换行符):

<?php

?>

最佳答案

快速表达了我认为符合您要求的表达方式。现在已经很晚了,出于某种原因,我正在使用 stackoverflow。无论如何,我希望我的请求是对的。

试试这个正则表达式 /\A(?:\s+.*>|[^<#].*>\s*|<.*>\s+)\Z/s .此处解释:http://regex101.com/r/cT7eY5

希望对您有所帮助。如果我对你有任何误解,请澄清,我会尽量调整表达方式。

关于php - 查找注入(inject)空格的 PHP 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12415675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com