【问题标题】:Need to run sql command on iframe load. Preferably not using onload()需要在 iframe 加载时运行 sql 命令。最好不要使用 onload()
【发布时间】:2015-04-20 20:22:07
【问题描述】:

我想在 iframe 完全加载后运行 sql 命令,我找到了一种使用 onload() JS 函数执行此操作的方法,但它会带来安全风险。用户在查看网页时会获得奖励,所以一个简单的技巧是调用修改了用户 ID 的 url,如果我使用 JS,则该 url 将是可见的。如果 onload() 对解决方案有任何用处,那么只要最终结果是安全的就可以了。

更新用户的回发脚本。

include("config.php");  
include("mysql.php");  
$reward = 1;  
$suid   = $_REQUEST['usr'];

mysql_query("UPDATE ".MYSQLTABLE." SET amount=amount+".$reward." WHERE usr='".$suid."'") or die(mysql_error());  
mysql_close();

我对 php 和 sql 很陌生,并且已经意识到我的 php/sql 书已经过时了!

【问题讨论】:

    标签: php mysql iframe


    【解决方案1】:

    Php 将在一个流程中完成,除非您从其他服务询问需要一些时间的数据或者您使应用程序处于休眠状态。最好确实使用onload() 并使用ajax 调用。

    查看Jquery Ajax

    【讨论】:

    • 类似function update(){ $.ajax( { url: 'postback.php?usr='$suid'', type : 'POST', dataType: 'json', success : function ( jsXHR) { }, failed : function(status,data){ } } ); }); 如果是这样,这将是可利用的。
    • 您可以这样做,并将散列的数据保存在会话/cookie中,并使用基于时间创建的密钥来取消散列。就像我在 13:33 开始这个过程一样,有一个基于这个时间的哈希值 10 分钟。您可以设置一个 cookie 来检查时间,并在端点中取消它...
    • 哈哈,我就是这么想的!与其说是 cookie/会话和加密,这对我来说听起来有点先进,但我已经将 JS 修改为postback.php?usr='$suid'&key='$key',其中 $key 必须在回发文件中匹配。现在正在努力:) 为帮助干杯!
    猜你喜欢
    • 2023-03-23
    • 2022-07-12
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多