[原]禁止网站外部提交表单函数

  允许从网站外部提交表单可能会带来严重的安全隐患,ASP和PHP都可以构造POST数据,攻击者可能使用暴力猜解来获得后台管理密码,或者通过SQL注入来得到他没有权限得到的东西,进而获得整个网站的控制权。防SQL注入攻击在此不再叙述,各种方法林林总总。当然也可以使用验证码的方式来避免此类问题,本篇只给出ASP和PHP两个禁止网站外部提交表单的函数。

ASP函数:

Function CheckPageFrom()
  Dim host, referer
  host = Request.ServerVariables("HTTP_HOST")  '网站域名
  referer = Request.ServerVariables("HTTP_REFERER")  '前一页面URL地址
  rleft = Left(Replace(referer, "http://", ""), Len(host))
  If Cstr(rleft) <> Cstr(host) Then
    response.Write "<script language='javascript'>"
    response.Write "alert('禁止从网站外部提交表单!');"
    response.Write "location = 'http://www.yourname.com';"
    response.Write "</script>"
    response.End()
  End IF
End Function

PHP函数:

function CheckPageFrom() {
  $servername = $_SERVER['SERVER_NAME'];  //当前脚本路径
  $len = strlen($servername);  //脚本路径字符串长度
  $pagefrom = $_SERVER["HTTP_REFERER"];  //前一页面URL地址
  $checkfrom = substr($pagefrom, 0, $len);
  if($checkfrom != $servername) {
    echo('<script type="text/javascript">'
      .'alert("禁止从网站外部提交表单!");'
      .'location="http://www.yourname.com";'
      .'</script>');
    exit;
  }
}
原创文章,转载请注明出处:代码人生https://www.code-life.com/
本文链接地址:https://www.code-life.com/?p=337

发表评论

您的电子邮箱地址不会被公开。