gpt4 book ai didi

javascript - php如何验证字符串是否是安全验证的某些函数

转载 作者:行者123 更新时间:2023-12-01 03:51:16 25 4
gpt4 key购买 nike

我在 ajax 文件中使用 eval() 函数,它允许我从 Javascript 调用函数(类似于 Securely calling PHP code from JavaScript );

我想要使用大约 20 个函数。我不希望传入恶意代码。我如何验证传入的字符串是我的函数之一,仅此而已?

最佳答案

使用eval来实现这一点会使事情变得过于复杂。您可以简单地在服务器端定义您的函数,并使用简单的 switch case 切换到正确的函数。这样您就不必担心与安全相关的问题。

jQuery:

function callPhp(func, callback){
$.ajax({
type: 'GET',
url: 'callPhp.php',
data: {action:'register'},
success: function (data) {
data = JSON.parse(data);
callback(data);
}
});
}

PHP:

<?php

$action = $_GET['action'];

switch ($action) {
case "register":
register_user();
break;
case "login":
login();
break;

?>

如果您确实想使用 eval(我强烈建议您不要使用它),您可以简单地实现一种应在服务器端执行的方法名称白名单。

<?php

$whiteListMethod = array('register', 'login', 'forgotPassword');
$action = $_GET['action'];

// Is the user supplied function present in my whitelist?

if(in_array($action,$whiteListMethod)){

// You can call this method safely

}else{

// Hack attempt detected

}

关于javascript - php如何验证字符串是否是安全验证的某些函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43172782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com