import os
def find_method(name):
i = 0
found_dic = { "$_GET":[], "$_POST":[], "include":[], "require":[], "mysql_query":[], "SELECT":[], "system":[], "exec":[], "passthru":[], "readfile":[], "fopen":[], "eval":[] }
for x in file(name, "r"):
i += 1
for key in found_dic:
if x.strip().find(key) != -1:
found_dic[key].append("LINE:"+str(i)+":" + x.strip())
print "="*20, name, "="*20
for key in found_dic:
if found_dic[key]:
print " ", "-"*10, key, "-"*10
for r in found_dic[key]:
print " ",r
def search(dirname):
flist = os.listdir(dirname)
for f in flist:
next = os.path.join(dirname, f)
if os.path.isdir(next):
search(next)
else:
doFileWork(next)
def doFileWork(filename):
ext = os.path.splitext(filename)[-1]
#if ext == '.html': print filename
if ext == '.php':
# print "target:" + filename
find_method(filename)
我怎麼能只打印結果。它的所有打印文件事件文件的名稱都沒有任何結果。我想要打印的文件名,如果它有它的Python:打印結果只有
任何結果,這是關於搜索詞,但它顯示了每一個字包括像(seaching爲包括),那麼它也發現在句子和打印所有句話我想詞找到只包含在句子中的單詞「包含」。這真的很難解釋。我希望能夠理解.. srry
恐怕我不明白。例子可能會有很長的路要走。將'x','i','r'和可能的'key'和'found_dic'重命名爲更具可讀性的內容對於減輕像我這樣的凡人的混淆可能會有很大的幫助。 – femtoRgon
你沒有給我們你的完整程序。 'found_dic'永遠不會被定義,也不是'i'。 – MattDMo
此外,請修復您的縮進 - 每個縮進應該有4個空格,沒有混合空格和製表符 – MattDMo