比如PHP代码里的join,foreach里的sql?
4 回答
回首忆惘然
TA贡献1847条经验 获得超11个赞
项目内部的.git/hooks里面有很多git-hook的sample shell脚本。
通过判断commit的内容里有无相关禁词,来做是否提交。
#!/bin/bash
if [ #有关键词 ]; then
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo ""
echo "禁止使用XXXX关键词代码!"
echo ""
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
exit 1
fi
当然,判断commit内容会比较复杂,需要先拿到commit内容,再判断。
慕标琳琳
TA贡献1830条经验 获得超9个赞
用别的方法实现了,虽然有点2.。。
//入口文件引入代码审查文件
if (is_file('./check_code.php')) {
require_once('./check_code.php');
}
check_code.php
<?php
$keyword_arr = array('join', 'JOIN');
$allow = 255; //目录中目前存在的join
foreach ($keyword_arr as $value) {
$cmd = 'grep -r --exclude-dir=Runtime '.$value.' * | wc -l';
$r = execInBackground($cmd);
if($r>$allow){
exit('代码里包含的join查过额定数量'.$allow.',现为'.$r);
}
}
function execInBackground($cmd) {
$sum = 11;
if (substr(php_uname(), 0, 7) == "Windows"){
$r = pclose(popen("start /B ". $cmd, "r"));
}
else {
$r = exec($cmd . " > /dev/null &");
}
return $r;
}
?>
- 4 回答
- 0 关注
- 415 浏览
添加回答
举报
0/150
提交
取消