register_globals = on 的问题是变量滥用,容易给攻击者控制判断变量。你可以看下这篇文章:《PHP安全问题:远程溢出、DoS、safe_mode绕过漏洞》http://www.billleo.com/ViewInfo.asp?id=100

解决方案 »

  1.   

    最好是不要打开,你在处理变量的时候尽量用$_GET[] $_POST[]...
      

  2.   

    是的,用$_POST的写法可以有限的避免设置成ON的危害当register_globals=on时
    http://localhost/page.php?username=admin
    则在page.php中产生变量$username,假如page.php正好使用这个变量表示已注册的用户名。那么通过上述url就可绕过登陆页面了。这就是设置成on的危害之一
    如果经url传入一个对程序至关重要的变量,则可能导致程序的崩溃或被嵌入木马程序
      

  3.   

    xuzuning(唠叨) 说得好,
    以前只知道不好,因为在c/c++中用全局变量会有很多的问题
    没想到php中global=on会有这么严重的危害
      

  4.   

    用$_POST的写法可以避免设置成ON的危害嘛?)----------------------------------------------------不完全能