在DEDECMS2的里面有个文件包含了几个函数
if (!empty($_GET))
{
    foreach($_GET AS $key => $value)
    {
            $$key = $value;
    }
}
//把POST变量分解为外部变量
if (!empty($_POST))
{
    foreach($_POST AS $key => $value)
    {
            $$key = $value;
    }
}
==============
然后包含,在表单需要的页面
我想问下,如果表单是post数据的,但是包含这两个函数后,不是在接受的页面用get带参数也可以传递了吗?这个不是很不安全吗? 

解决方案 »

  1.   

    因为后面的程序只会对某些key的变量起作用
    而按上面这段程序的顺序,同时post和get的话,post会把get的同名变量冲掉
      

  2.   

    建议自定义两个函数,分别处理post、get
      

  3.   

    我自己弄了个表单,测试了下,包含了这两个函数后,可以直接用index.php?action=post&user=aaa&pass=bbb注入。很不安全!
      

  4.   

    to snmr_com(麒麟厍人);
    我知道这个,但是我是问,这样不是本来应该是post的数据,那么直接在地址栏传递参数也就可以了?不是很不安全?
      

  5.   

    你取一下$_SERVER里面的参数;判断是哪个页面提交过来的看行不行!
      

  6.   

    你觉得有什么不安全?
    -------------------------
    如果这个表单被用XMLHTTP批量提交垃圾信息不是很不安全?
      

  7.   

    垃圾数据都很多,你可以用其他办法来作1、ban ip2、加验证码
      

  8.   

    为什么觉得GET不安全POST就安全?外部数据都不可信就看你怎么处理
      

  9.   

    POST 的安全性并不比 GET 好,
    XMLHTTP 可以用 GET 提交垃圾信息,也可以用 POST 提交垃圾信息。
      

  10.   

    if (!empty($_GET))
    {
        foreach($_GET AS $key => $value)
        {
                $$key = $value;
        }
    }
    //把POST变量分解为外部变量
    if (!empty($_POST))
    {
        foreach($_POST AS $key => $value)
        {
                $$key = $value;
        }
    }纠正一下!以上语句不是函数我不明白楼主的意识,既然你是函数,没调用该函数他也会执行?也就是说你的页面中该接受post时你的get函数没调用也执行?那你的语句绝对有问题!
      

  11.   

    to luojxun() 
    不是函数,就是一个页面里包含这些代码,然后条用的