gpt4 book ai didi

ballerina:传递给敏感参数的受污染值

转载 作者:行者123 更新时间:2023-12-01 22:53:50 27 4
gpt4 key购买 nike

我是芭蕾舞 Actor 的新手。我想从命令行获取用户参数并将其设置为 json 负载。像这样的事情:

ballerina run client.bal testInput

以下是我的client.bal

endpoint http:Client clientEndpoint {
url: "http://localhost:9090"
};

function main(string... args) {
http:Request req = new;
string userInput = args[0];

json jsonMsg = {input: userInput};
req.setJsonPayload(jsonMsg);

但是当我这样做时,我收到编译错误:受污染的值传递给敏感参数“有效负载”

我尝试按如下方式进行验证,但仍然收到错误。

string userInput = "empty";
if(!(args[0] == "")) {
userInput = args[0];
}

有人知道解决这个问题的方法吗?

最佳答案

无污染的一元表达式是修复此处编译错误的快速方法。但正确的方法是在将内容传递到安全函数之前对其进行正确的验证。

例如,我们可以有一个验证/清理函数,它接受受污染的值,并在进行如下验证后返回未受污染的值。

function validate(string input) returns @untainted string {
string regEx = "[^a-zA-Z]";
return input.replace(regEx, "");
}

在上面的示例中,通过使用@untainted注释,我们可以将函数返回值标记为未受污染的值。现在可以将该值直接传递到需要未受污染值的安全函数中。因此我们可以重写您的示例,如下所示。

import ballerina/http;

endpoint http:Client clientEndpoint {
url: "http://localhost:9090"
};

function main(string... args) {
http:Request req = new;
string userInput = validate(args[0]);
json jsonMsg = {input: userInput};
req.setJsonPayload(jsonMsg);
// rest of the program
}

function validate(string input) returns @untainted string {
string regEx = "[^a-zA-Z]";
return input.replace(regEx, "");
}

上面的验证函数只是一个示例。但根据需求,我们可以编写函数来进行实际验证并返回 protected 内容。更多信息请访问:https://ballerina.io/learn/by-example/taint-checking.html

关于ballerina:传递给敏感参数的受污染值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52496074/

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