0
我是一個絕對的PHP初學者,試圖設置一個驗證來停止在聯繫表單上的頭注入。我已經閱讀了很多教程,並做了一個應該驗證的表單,但它不工作......在這裏稍微研究一下之後,我的問題是我的代碼使用了eregi(舊教程),它應該是preg_match這些天。我已經使用preg_match來驗證電子郵件地址格式,但我想確保沒有換行符,cc,密件抄送等可以在任何地方進行竊取。 這是我現在具備的功能:preg_match防止以PHP格式注入
function spamcheck($field) {
if(eregi("to:",$field) || eregi("cc:",$field) || eregi("Content-Type:",$field) || eregi("bcc:",$field) || eregi("%0D",$field) || eregi("\r",$field) || eregi("\n",$field) || eregi("%0A",$field)){
$possiblespam = TRUE;
}else $possiblespam = FALSE;
if ($possiblespam) {
die("Possible spam attempt detected. If this is not the case, please edit the content of the contact form and try again.");
return 1;
}
}
現在,我不知道如果我可以的preg_match像這樣只需更換eregi:
if(preg_match("/to:/i",$field)
// and so on for each string I want to catch
我已經在這裏讀preg_match需要分隔符,不知道我是否正確使用它們。另外,應該是區分大小寫的,所以我添加了i標誌(沒有信心)。但是,如果真的沒有真正的想法實際上是正確的。這看起來安全嗎?再次,道歉我缺乏PHP知識。這種功能在在線教程中很常見,但使用eregi而不是preg_match。