【问题标题】:AMP-Email securityAMP-电子邮件安全
【发布时间】:2020-05-31 19:50:50
【问题描述】:

我已成功发送包含来自 amp-email 数据的表单,但存在安全问题。
黑客能否拦截用户通过 amp-email 中的表单发送的数据?如果可以,概率是多少,做起来有多容易。

【问题讨论】:

    标签: amp-html amp-email


    【解决方案1】:
    • 黑客可以在 chrome devTools 中查看您从电子邮件到后端 API 的请求。
    • 解释示例:

    假设我们的网站有一个页面显示单个城市的天气观测历史。这个城市的ID通过请求参数中的链接传递:/weather.php?city_id=<ID>,其中ID - 是城市的主键。 在 PHP 脚本中,我们使用此参数在 SQL 查询中进行替换:

    $city_id = $_GET['city_id'];
    $res = mysqli_query($link, "SELECT * FROM weather_log WHERE city_id = " . $city_id);
    

    如果服务器传递city_id参数等于10/weather.php?city_id=10,则执行SQL查询:

    SELECT * FROM weather_log WHERE city_id = 10

    但是如果攻击者将字符串-1 OR 1=1作为id参数传递,请求就会被执行:

    SELECT * FROM weather_log WHERE city_id = -1 OR 1=1

    向输入参数(而不是简单的值)添加 SQL 语言结构会改变整个 SQL 查询的执行逻辑!

    在此示例中,将接收所有城市的数据,而不是显示一个城市的数据,因为表达式 1=1 始终为真。而不是SELECT ...表达式,可能是更新数据的表达式,那么后果会更严重。

    缺乏对 SQL 查询参数的正确处理是最严重的漏洞之一。永远不要“按原样”在 SQL 查询中插入来自用户的数据!

    【讨论】:

      猜你喜欢
      • 2020-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多