【问题标题】:Add variable to session with click on the link.单击链接将变量添加到会话。
【发布时间】:2014-05-06 18:30:19
【问题描述】:

我有工作,但不安全的脚本正在运行。基本上,我有一个循环从数据库中提取“id”并将此代码显示为最终代码。

<a href=next-page.php&lang_id=1&id=145> <img src=thumb1.jpg> </a> <a href=next-page.php&lang_id=1&id=146> <img src=thumb2.jpg> </a> <a href=next-page.php&lang_id=1&id=147> <img src=thumb3.jpg> </a>

当用户点击时,他转到下一页,他可以看到来自事件的全套图片。 认为在会话中传递变量可能是最安全的方法,我希望更改我的脚本并从链接中删除“id”,但我不知道如何在用户点击时将“id”传递到会话中链接。

【问题讨论】:

    标签: php session


    【解决方案1】:

    我同意@mareckmareck。 创建表单并在该表单内放置单选按钮集,如下所示

    <form action="next-page.php?lang_id=1" method="post">
      <p><input type="radio" name="option" value="145" /> <img src=thumb1.jpg></p>
      <p><input type="radio" name="option" value="146" /> <img src=thumb2.jpg></p>
      <p><input type="radio" name="option" value="147" /> <img src=thumb3.jpg></p>
    </form>
    

    我希望这会有所帮助。

    【讨论】:

    • 我不希望用户单击两次以打开下一页...也许我会尝试使用隐藏字段
    • 如果不受限制,可以考虑使用javascript/jquery来处理。
    • 您可以添加javascript代码来触发点击任何单选按钮的帖子。这样用户只需点击一次。隐藏字段也是这样做的方法之一
    【解决方案2】:

    改用表单和$_POST。无需在session 中传递此类变量。尽管如此,如果没有form 或以合乎逻辑的方式将 id 放入 URL,您将无法真正在纯 php/html 中做您想做的事情。

    老实说,如果您在服务器端进行了安全检查,那么在 URL 中传递 id 并不是那么糟糕。您应该尝试使用某种形式的混淆,例如哈希或业务 ID(假 ID 号,例如在用户上下文中创建,因此每个用户都有自己的 ID,并且它们本身并不是唯一的)。事实上,最好不要在客户端向用户显示数据库 ID。

    【讨论】:

    • 的想法是防止恶意用户进行 SQL 注入。因为,现在他们可以打开 'next-page.php&lang_id=1&id=14'5' 并得到一个错误并继续处理..
    • 如果你正确地转义你得到的字符串,你可以在服务器端处理 SQL 注入。当然,如果您在数据库操作中使用它,以其他方式传递数据会更安全。
    猜你喜欢
    • 1970-01-01
    • 2012-02-06
    • 2014-05-17
    • 2013-07-27
    • 2013-01-24
    • 2011-12-05
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    相关资源
    最近更新 更多