Heim  >  Fragen und Antworten  >  Hauptteil

Fragen zur Legalität

Ich bin ein Neuling und als ich heute Code schrieb, ist mir plötzlich ein Sicherheitsproblem aufgefallen.

Können Hacker bei verschiedenen Ajax-Anfragen Code extern einreichen? Weil der JS-Dateibrowser es sehen kann, das heißt, er kann Ihren Code kennen. Wenn also ein Hacker unseren Domainnamen verwendet, um ihn extern zu übermitteln, kann PHP dann feststellen, ob er legal ist? Stellen Sie beispielsweise fest, ob unsere eigenen Dateien übermittelt wurden.

Zum Beispiel hat meine js-Datei einen Code

$('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

Wie soll ich ihn in PHP schreiben, um das zu verhindern?

按键盘手指磨破皮按键盘手指磨破皮2579 Tage vor1690

Antworte allen(3)Ich werde antworten

  • MrSwan

    MrSwan2018-05-23 12:38:25

    CSRF了解下?

    Antwort
    0
  • phpcn_u22108

    phpcn_u221082017-09-01 18:39:28

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

    Antwort
    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的操作密度,较频繁的可不定时要求输入验证码。

    ........

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

    Antwort
    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
  • StornierenAntwort