小编use*_*891的帖子

壳牌注射 - 这是安全的吗?

我正在解决我在Linux下的Firefox中表现不佳的问题.

我想知道以下代码是否安全.输入是不可信的,我觉得如果没有消毒,可能会很危险.

#!/bin/bash

#in="vlc://www.youtube.com/watch?v=yVpbFMhOAwE"
in=$1;
out=`echo $in | sed -r 's/vlc:\/\/www\.youtube\.com\/watch\?v=([-_a-zA-Z0-9]*).*$/\1/g'`;
vlc "http://www.youtube.com/watch?v=$out";
Run Code Online (Sandbox Code Playgroud)

编辑1:基于Jan Hudec的评论,我已经谈到了这一点

#!/bin/bash

#in="vlc://www.youtube.com/watch?v=yVpbFMhOAwE"
in=$1;

if [ `expr "$in" : '^vlc://www.youtube.com/watch?v=[-_a-zA-Z0-9]*$'` -gt 0 ]
then
    vlc "http${in:3}";
fi
Run Code Online (Sandbox Code Playgroud)

编辑2(可能是最终):

#!/bin/bash

#in="vlc://www.youtube.com/watch?v=yVpbFMhOAwE"
in=$1;

if expr "$in" : '^vlc://www.youtube.com/watch?v=[-_a-zA-Z0-9]*$' >/dev/null 
then
    vlc "http${in:3}";
fi
Run Code Online (Sandbox Code Playgroud)

linux bash sed

2
推荐指数
1
解决办法
171
查看次数

标签 统计

bash ×1

linux ×1

sed ×1