首页  >  问答  >  正文

关于合法性的问题

本人是新手,今天写代码突然想到个安全性问题。

对于ajax的各种请求,黑客是否能通过外部进行代码提交?因为JS文件浏览器都能看到,也就是能知道你的代码,那么如果黑客在外部用我们的域名进行提交,php能否判断是否合法呢?比如判断是否是我们自己的文件提交的?

比如我的js文件有段代码

$('input').click(function(){
    $.post('index.php',{a:xx,b:xx},function(a){
        xxxxx
    })
})
那么如果黑客通过外部提交
xxxxxxxxxxx
$('input').click(function(){
xxxxxx
    $.post('http://www.xxxx.com/index.php',{a:xx,b:xx},function(a){
        xxxxx
    })
xxxxxx
})
xxxxxxxxxxx

PHP里面要如何写才能防止呢?

按键盘手指磨破皮按键盘手指磨破皮2628 天前1737

全部回复(3)我来回复

  • MrSwan

    MrSwan2018-05-23 12:38:25

    CSRF了解下?

    回复
    0
  • phpcn_u22108

    phpcn_u221082017-09-01 18:39:28

    外部提交是正常的,需要通过程序来阻止注入。

    回复
    0
  • 按键盘手指磨破皮

    恶意的POST可以刷单刷量啥的

    按键盘手指磨破皮 · 2017-09-01 20:03:07
  • ringa_lee

    ringa_lee2017-09-01 15:46:40

    按照你这样的说法的话,外面ajax模拟提交过来的数据就属于是跨域了。

    这个你有多个方式去处理。比如:

    1、可以设定访问权限,比如说只有登录会员才可查看或者是限定域名,这样会给别人的抓取造成一定难度。但这个障碍总能被解决的。

    2、用session生成令牌,提交之后验证session,合法则马上注销这个session,确保每次都有一个新的令牌。

    3、分析访问日志,从服务器级别限制可疑IP访问。

    4、记录每个IP的操作密度,较频繁的可不定时要求输入验证码。

    ........

    会有很多种方法,但没有哪种说是最好的,建议多管齐下。望采纳~

    回复
    0
  • 按键盘手指磨破皮

    这些方法感觉都不太靠谱...用抓包软件抓包后 这些都是可以模拟出来的 比如session 可以通过访问文件返回抓取到 网上的IP也多 都能拿来用 感觉学PHP最重要的就是防止被黑啊 我网站老是被黑 被各种加代码 各种非法POST

    按键盘手指磨破皮 · 2017-09-01 16:06:46
    按键盘手指磨破皮

    知道了,感谢回答

    按键盘手指磨破皮 · 2017-09-01 16:22:31
    ringa_lee

    没有什么方法是绝对的,安全类的方法太多了,你可以着重从服务器上下手,双管齐下,什么方法都用上,你多做几种防护措施,别人也不能轻易的去攻击你的站点,而且你不是什么太热门的站,人家也不可能整天闲的没事干,天天研究想着去攻击你的站啊

    ringa_lee · 2017-09-01 16:20:36
  • 取消回复