使用 Data::Dumper 的 Perl Web API
我们使用 Apache 和 mod_perl 开发了一个开放式 Web API,您可以在其中传递 Data::Dumper 创建的文本来发出请求。
我们的数据通常如下所示:
$VAR1 = {
'OurField' => 'OurValue'
};
目前,我注意到我们正在使用 eval
将数据返回到 Perl 哈希服务器端:
my $VAR1;
eval $our_dumper_string;
#$VAR1 is now filled with hash value
这个问题是一个主要的安全问题。你可以在其中传递恶意 Perl 代码,它将在服务器端运行...
是否有更好的方法来安全地获取 Data::Dumper 字符串并将其转换为哈希值?
We've developed an open web API using Apache and mod_perl, where you can pass text created by Data::Dumper to make requests.
Our data generally looks like this:
$VAR1 = {
'OurField' => 'OurValue'
};
Currently, I noticed we're using an eval
to get the data back into a Perl hash server side:
my $VAR1;
eval $our_dumper_string;
#$VAR1 is now filled with hash value
The problem with this, is it is a major security issue. You can pass malicious perl code in there and it will run server side...
It there a better way to safely take a Data::Dumper string and turn it into a hash?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的。使用 JSON::XS 并使用 JSON 而不是 Data::Dumper 格式。这与其他 Web API 更加兼容
Yes. Use JSON::XS and use JSON rather than Data::Dumper format. That is much more compatible with other web APIs
如果您的数据简单且可预测,您甚至可以尝试编写一个简单的“解析器”来读回数据结构中的值
(这只是一个示例,不适用于整数或嵌套数据结构)
If your data is simple and predictable you can even try to write a simple "parser" to read back the values in a data stricture
(this is just an example and wont work with integers or nested data structures)