我正在尝试阻止xss注入。 所以在我提交表单之前,会调用一个javascript函数
function validatefield(id) {
var description = document.getElementById(id).value;
description = description.replace(/[\"\'][\s]*javascript:(.*)[\"\']/gi, "");
description = description.replace(/script(.*)/gi, "");
description = description.replace(/eval\((.*)\)/gi, "");
document.getElementById(id).value=description;
}
我很奇怪在插入mysql之前是否有办法在php中做同样的事情?如果他们绕过了validatefield函数。
由于
答案 0 :(得分:4)
您正在寻找preg_replace
。
$description = preg_replace('regex pattern', 'regex replacement', $description);
答案 1 :(得分:3)
一般来说,您可以在PHP中使用preg_replace进行正则表达式替换。但是你的设计存在一些问题
一般来说,如果您想允许某种形式的HTML,白名单是一种更好的方法。 HTML Purifier是在PHP中实现此功能的流行工具。