我正在为我正在处理的网络应用程序创建自定义电子商务模块。我们为用户提供了为其网站创建模块的机会,这些模块将与我们一起托管到域中,例如:http://example.com
。
该模块在用户的帐户管理面板中有一个Javascript界面。要访问管理面板,他们必须使用他们的帐户登录我们的Web应用程序。
他们可以添加产品,更改电子商务设置(此类货币)等。当添加产品或修改某些内容时,调用URL进入用户的域,调度程序会调用PHP函数(添加产品,删除产品等)并修改他们的数据库,但如果有人知道处理过的URL,可以使用REST API客户端发送信息并且它应该工作(例如发送产品ID到删除产品行动)。我们希望防止这种情况发生,因为有人可能会删除客户端产品或修改某些电子商务设置。
我们考虑在调用API URL时使用存储在PHP SESSION
中的令牌,将令牌返回到AJAX调用,然后使用给定令牌对请求的函数执行另一次AJAX调用。调用该函数时,比较两个标记,如果它们相同,则允许更改。否则,他们会被拒绝,但我们不知道这是否是一个良好的安全"阻止从外部访问API。因为你可以找到"知道你必须调用URL获取访问令牌的方法,然后使用给定的令牌进行另一次调用并执行销毁。
提前致谢。任何信息或建议将不胜感激。
问候。
答案 0 :(得分:1)
您可以尝试以下方法:
$_SESSION['token'] = md5( time() ); // for example
<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>">
)以使用处理数据库操作的表单进行处理。$_SESSION['token'] == $_POST['token']
必须满足的条件,以便所需的操作成功。但当然,请务必先检查$_SESSION['token']
是否存在。如果没有,他们将从外部访问您的系统。这是一种做法。