使用sed with ?(问号)特殊字符



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

只是一个解释:

注入的代码与下面的代码类似:

< 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

不幸的是,这并没有像其他方法一样有效。

所有的帮助将不胜感激。

echo "< iframe src=http://test.com/index.html?i=23123>< /iframe>" 
| sed 's@< iframe src=http://test.com/index.html?i=23123>< /iframe>@@'

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

请注意,大多数种子将接受替代的正则表达式替换字符,这里我使用@,因为在搜索目标中没有@。在某些种子上,你必须告诉它'嘿,我正在使用替代,并转义字符,如s@.....@@

我不明白为什么你试图引用?失败。你试过[?]和(最坏的情况)[?]吗?有没有你在这里没有提到的,由shell进行的第二级评估?我简单的例子也失败了吗?

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

IHTH

最新更新