我正在开发一个Web应用程序,其中开发了各种模块和脚本。现在,通过使用各种 PHP 脚本和 javascript,应用程序可以按预期工作。
我愿意阻止未经授权的 PHP 脚本执行。我的意思是应用程序有 javascript,其中 Post 参数作为用 javascript 编写的变量发布,任何人都可以查看将值传递给 php 脚本的详细信息。我也无法绕过这样的操作,因为它对数据库的记录进行了一些必要的数据操作、添加、修改和删除。
如果有人恶意读取 JavaScript 并通过 POST 参数将类似类型的参数发送到 PHP 脚本,Web 应用程序将无法识别该请求是来自授权用户还是来自未经授权的用户。
假设如果 Web 应用程序中的某些操作通过 jquery 使用 ajax 删除客户,那么它将在 javascript 中的某个位置编写,例如
var request = $.ajax({
url: "phpscript.php",
type: "POST",
data: {DataInp: 'CustomerNo', Action: 'delete'}
});
request.done(function( msg ) {
SRes = msg;
});
request.fail(function( jqXHR, textStatus ) {
SRes = false;
alert( "Request failed: " + textStatus );
});
return SRes;
我正在使用 session 变量,其中包含一些登录信息和真实验证,我担心可能发生的此类危险。
如果有人使用以下内容
<img src="http://www.dummy-application.com/delete_record.php?id=123" />
现在要求用户打开此网页。现在,由于用户登录到应用程序,URL 将被触发,并且脚本将采取任何必要的操作。
所以基本上,黑客提出了技术上有效的请求,但未经授权。所以从技术上来说,这里的问题是服务器将无法识别用户是否愿意调用该 url。因此需要有一种机制来防止这种情况发生。
我想要的是一种简单的方法来在执行如此重要的任务时验证或识别是否真实或来自欺诈。所以我想防止黑客以有效的方式向 PHP 脚本发送欺诈请求
如果有人有解决方案并且可以防止此类行为,我会寻求如何实现的帮助和建议。
我很抱歉我的英语不好,因为英语不是我们的主要语言。但我请求大家在此事上指导我。
最佳答案
我猜你必须使用 token 。简而言之,当授权用户请求页面时,您还可以随该页面发送一个新生成的 token (设置了过期时间)。收到请求后,您检查是否发布了 token 以及它是否(仍然)是有效 token ,如果是,则执行脚本。
关于javascript - PHP代码执行并防止未经授权的外部访问执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26314169/