相关疑难解决方法(0)

'AND'vs'&&'作为运营商

我有一个代码库,开发人员决定使用ANDOR不是&&||.

我知道运营商的优先级(&&之前and)有所不同,但是对于给定的框架(PrestaShop来说准确),显然不是理由.

你使用的是哪个版本?是and不是更具有可读性&&?或者没有区别?

php coding-style operators

285
推荐指数
5
解决办法
18万
查看次数

如何检查请求是否是PHP的AJAX请求

如果对我的php页面的请求是ajax请求,我想检查服务器端.

我看到了两种方法:

第一种方式:GET在请求中发送一个参数,告诉页面这是一个AJAX请求(= mypage.php?ajax)

mypage.php:

if(isset($_GET['ajax'])) {
    //this is an ajax request, process data here.
}
Run Code Online (Sandbox Code Playgroud)

第二种方式:设置标题为xmlHttpRequest:

客户端js:

xmlHttpRequestObject.open(“GET”,url,true);
xmlHttpRequestObject.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
Run Code Online (Sandbox Code Playgroud)

mypage.php:

if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' ) {
    //request is ajax
}
Run Code Online (Sandbox Code Playgroud)

事实是,这两种方式很容易被黑客攻击,因此检查我是否收到这样的AJAX请求是不安全的.

如何检查我是否收到了AJAX请求?

php ajax xmlhttprequest

49
推荐指数
6
解决办法
10万
查看次数

如何判断页面是通过Ajax调用还是通过它自己调用

我有一个页面通过Ajax加载其他页面(想想框架,除了没有框架).

显然这些页面都可以独立调用,所以我想检测它们是否通过Ajax调用,如果没有,则重定向到主Ajax页面.

页面是php页面,所以我也可以访问它.

指数:

    goto = "StandalonePrograms.php";
    var clear = "<br style='clear:both;'>"
    if(goto != ''){
        $.ajax({
            url: goto,
            context: document.body,
            success: function(data){
                $('#mainwindow').html(data + clear);
                $('#mainwindow').find("script").each(function(i){
                    eval($(this).text());
                });
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

php ajax jquery

9
推荐指数
1
解决办法
5961
查看次数

如何保护PHP脚本?

如果我对php脚本进行AJAX调用,就像这样(使用jQuery)

$.ajax(url: "../myscript.php");
Run Code Online (Sandbox Code Playgroud)

并且myscript看起来是这样的:

<?php
    //code that does something to db
 ?>
Run Code Online (Sandbox Code Playgroud)

我想知道如何防止用户只是去example.com/myscript.php来执行脚本.

php security web

5
推荐指数
2
解决办法
1171
查看次数

仅接受来自特定页面的AJAX $ _GET或$ _POST请求

是否可以检查是否从特定页面提交了这些$_GET或者$_POST值?

例如,有一个ajaxpage1提交的价值page2.php?q=abc,而page2只接受q当它从提交page1.

如果我直接浏览到该页面page2.php?q=abc,php除非我提交了值,否则不会运行page1.

有可能吗?

编辑1:

因为我可以访问page2并获得结果.不要提及session,因为我可以验证session匹配我的需求,提交给php的值是否有效.

我想要的是检查请求是否从特定页面发送.如果为true,则接受值并处理它,否则,重定向到主页或其他内容.

编辑2:我的问题是,不仅是通过Ajax提交的值,还有直接访问,例如href="page2.php?q=abc".我想令牌将是最好的方法,查询部分将再次验证.

php ajax

3
推荐指数
1
解决办法
3834
查看次数

如何知道请求是否来自jQuery $ .ajax()

我想确定是否已经从jQuery $.ajax()方法向REST API发出了请求.

使用向发送到服务器的数据添加布尔值或添加标头的明显答案之一回答此问题之前,我不想这样做...

显然这可以这样实现:

$.ajax({
    data: {
         sentViaAjax: 'true'
    }
});
Run Code Online (Sandbox Code Playgroud)

但是,出于各种原因,我希望布尔/附加标头保持对代码隐藏.

因此,我想知道的是jQuery在发出请求时是否以任何特定形式将任何其他数据发送到服务器?

我已经尝试打印出$_REQUEST阵列,但除了发送的数据之外,它不包含任何内容.是否有任何独特的标题需要注意?如果是这样,它们是否可靠,如果它们一直存在吗?

php ajax jquery

0
推荐指数
1
解决办法
131
查看次数

标签 统计

php ×6

ajax ×4

jquery ×2

coding-style ×1

operators ×1

security ×1

web ×1

xmlhttprequest ×1