gpt4 book ai didi

ballerina - Ballerina 中将参数传递给 sql 查询时出错

转载 作者:行者123 更新时间:2023-12-04 18:56:36 24 4
gpt4 key购买 nike

我正在开发一个简单的芭蕾舞 Actor 应用程序,它检索 email给定名称( cntname )。

string sqlString = "SELECT email FROM CONTACTS WHERE Name=?";
// Retrieve employee data by invoking select action defined in ballerina sql client
var ret = contactDB->select(sqlString, (),cntname);

运行程序时出现此错误。

error: contacts_db_service:0.0.0/hello_service.bal:56:86: tainted value passed to sensitive parameter 'message'



extractName() 返回的值,如下所示,传递给 cntname .

enter image description here
*注: split()应用于传递给 cntname 的字符串值. *

最佳答案

Ballerina 编译器内置了“污点分析器”,支持 Ballerina 成为具有安全意识的编程语言。污点分析器将有助于防止许多安全漏洞,包括 SQLi、路径操作和 XXS。您可以通过“How to Write Secure Ballerina Programs”页面阅读更多相关信息。

但是,您执行 SQL 查询的方式是绝对正确的,并且不存在安全问题。查看错误消息,似乎第 56 行应该是您调用 caller->respond( resp ) 的位置。返回 HTTP 响应的操作。

为什么我建议这样做是因为 caller->respond( resp )是我们为 message 设置一些值的位置respond 的参数行动。

如果是这种情况,请检查您尝试发送的响应内容是否是经过充分验证的值。污点分析器检测到您即将发送的响应包含不受信任(受污染)的数据,从而导致 XSS 或其他安全漏洞。您可以查看 this blog post 的“污点分析 — 示例”部分。了解此错误如何发生以及如何正确验证数据并减轻此错误。

此外,如果您可以分享完整的 Ballerina 代码,我可以更新答案,提供有关如何解决确切问题的更多详细信息。

关于ballerina - Ballerina 中将参数传递给 sql 查询时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51230591/

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