只是有一个想法,假设有一个表单有一个变量存储一些数据(基于哪个 - 表单将被相应处理)。HTML - 从外部PHP文件后注入
说用户得到他们的电子邮件转诊/注册链接遵循注册,假设URL以加密的GET变量,如:http://www.example.com?a42as231Adab
比如有后者从该ID获取变量的一种形式:
$usersID = decrypt($_GET['user']);
<form method='POST' action='viewdata.php?userID=$usersID'>
因为用户可以点击查看源代码,他们将很容易地看到行动领先的位置以及解析的用户ID。
等什么会阻止某人: 创建自己的服务器上的一个空白的新PHP文件,复制原始形式到他们的PHP文件,并将其更改为:
<form method='POST' action='viewdata.php?userID=1'>
我的意思是假定在这种情况下用户ID是连续的,所以1,2,3可能最终成为管理员。
让我们说viewdata.php,如果它通知用户ID是admin,它将允许用户管理一些东西。
换句话说:有没有什么办法可以阻止表单从任何东西发布到特定的域?
我知道这可能被认为是非常差的安全措施,如果用户可以根据他们的ID给予访问,但仍然,我对此很好奇,这只是我得到的一个随机想法。
我不完全确定你的问题是关于什么的,但我认为你正在谈论CSRF漏洞? – PeeHaa
所以你说的是,当一个用户使用加密的用户ID访问该页面时,他实际上是以该用户的身份登录的(可以说用户23)? (编辑:)因此,他可能只发布到viewdata.php?userID = 23 –
简言之:如果表单操作依赖于特定变量,什么阻止用户通过从外部域发送表单来更改该变量,从而可以编写自己的脚本php表单并对其进行修改 – arleitiss