3

Следующий сценарий: я просматриваю unsafeMethodCall() на всех моих веб-страницах. Этот метод небезопасен только в том случае, если есть ссылка на doSomeCrazyAjaxStuff()

Мои веб-страницы используют сильные шаблоны (то есть он был построен с помощью JSF)

Таким образом, веб-страница состоит из чего-то вроде этого:

<ui:decorate template="/mypages/editing/someWebPagePart.xhtml">
unsafeMethodCall()

это просто копирует содержимое шаблона на текущую веб-страницу.

Поэтому, если я ищу unsafeMethodCall() - проблема в том, что мне нужно вручную открыть someWebPagePart.xhtml для поиска crazyAjaxStuff() - но someWebPagePart.xhtml могут использовать другие шаблоны. Таким образом, от 1 попадания unsafeMethodCalls я могу получить МНОГО страниц, которые мне нужно открыть.

Поэтому я в основном хочу сканировать файл с именем "somefile.xhtml" на наличие вхождения шаблона. Если есть шаблон, который я хочу искать в этом шаблоне, и я хочу искать в шаблоне шаблона и т.д. Также :-)

Есть ли программа или инструмент, который может решить эту проблему?

[РЕДАКТИРОВАТЬ]

Так что в основном у меня есть файл с таким содержанием:(это только пример)

<div> 
<input value="enterusername"/>    
   </div>
[...more random web page contents like above this line....]
<ui:decorate template="/mypages/editing/someWebPagePart.xhtml">
     <my:tag>  unsafeMethodCall()</my:tag> <!-- this is potentially dangerous with another function call  -->
[...more random web page contents like below this line....]
<p></p>
<a href="#Other-Options" accesskey="n" rel="next">Other Options</a>

Теперь, когда я открою d:/dev/workspace/WebContents/mypages/editing/someWebPagePart.xhtml, я смогу увидеть, что в действительности отображается на странице - потому что содержимое файла someWebPagePart.xhtml будет автоматически скопировано веб-сервером на последнюю веб-страницу. То, что я ищу в файле someWebPagePart.xhtml выглядит примерно так:

<div> 
<input value="enterusername"/>    
   </div>
[...more random web page contents like above this line....]
<ui:decorate template="/mypages/editing/someotherPage.xhtml"> <!-- it could be in there as well -->
     <my:tag2>  crazyAjaxStuff()</my:tag2> <!-- searching this -->
[...more random web page contents like below this line....]
<p></p>
<a href="#Other-Options" accesskey="n" rel="next">Other Options</a>

Поскольку:

 <my:tag2>  crazyAjaxStuff()</my:tag2>

будет скопирован на ту же страницу, где находится unsafeMethodCall , это может привести к опасному состоянию, и мне придется внимательно посмотреть на страницу.

Примечание: вполне возможно, что 3-я страница someotherPage.xhtml содержит опасный crazyAjaxStuff()

1 ответ1

0

Я бы использовал ack из командной строки. Это быстро, он покажет вам номера строк в вашем коде и файлы, где они находятся. Это будет делать это рекурсивно, и результат будет немного красивым с цветами. Вы можете по-настоящему полюбить регулярное выражение, и вы можете направить его к себе для поиска файлов, найденных с unsafeMethodCall для crazyAjaxStuff. Просто прочитайте документацию и проявите творческий подход. Если вам это нужно для Windows, посмотрите это

Установите подтверждение:

curl http://betterthangrep.com/ack-standalone > ~/bin/ack && chmod 0755 !#:3

Запустите его, ищите все типы файлов без учета регистра, рекурсивно с буквенным шаблоном

ack -airQ "unsafeMethodCall"

Или используйте ключ -l, чтобы просто получить пути к файлам, а затем передать их через другую команду ack или другой инструмент.

ack -larQ "unsafeMethodCall"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .