将 sed 与 ? 一起使用(问号)特殊字符

问题描述 投票:0回答:1

我有一个受感染的网站,我正在尝试使用 sed 清除它。不幸的是,我无法逃脱网址中的问号,我真的被困在这里了。我在网上搜索了可能的解决方案,但不幸的是我没有找到合适的方法。

简单解释一下:

注入的代码与此类似:

< iframe src=http://test.com/index.html?i=23123>< /iframe>

请注意,我不是专业人士,这就是为什么我需要您的帮助!

所以我清除代码的方法是:

sed -i '/< iframe src=http:\/\/test.com\/index.html\?i=23123>/,/< \/iframe>/d' index.html

不幸的是,这并没有像其他人那样有帮助。

我们将不胜感激所有帮助。

sed character
1个回答
0
投票
echo "< iframe src=http://test.com/index.html?i=23123>< /iframe>" \
| sed 's@< iframe src=http://test.com/index.html?i=23123>< /iframe>@@'

不产生任何输出,对我来说这意味着这已成功删除您的问题字符串。

请注意,大多数 sed 都会接受备用正则表达式替换字符,这里我使用

@
,因为搜索目标中没有
@
。在某些 sed 上,您必须告诉它“嘿,我正在使用替代方案,并转义字符,例如
s\@.....@@

我不明白为什么你尝试引用

?
会失败。你尝试过
[?]
和(最坏的情况)
[\?]
吗?您在这里没有提到的 shell 是否进行了二级评估?我的简单例子也失败了吗?

正如其他人肯定会告诉您的那样,您的方法严格来说是创可贴,您需要找出系统中的安全漏洞并修复它。您的页面将再次损坏。

© www.soinside.com 2019 - 2024. All rights reserved.