Si è verificato un errore nell'elaborarazione del modello.
?substring(...) arguments have invalid value: The begin index argument, 79, shouldn't be greater than the end index argument, 61.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign journalArticleId = themeDispl...  [in template "20099#20125#41630" at line 12, column 17]
----
1<#assign backUrl = ""> 
2<#assign provenienza =""> 
3<#assign indicePresenzaArticle =themeDisplay.getURLCurrent()?index_of("id=")> 
4 
5<#if indicePresenzaArticle!=-1> 
6	<#assign journalArticleId = themeDisplay.getURLCurrent()?substring(indicePresenzaArticle)+3/> 
7 
8	<#assign indexInizio = themeDisplay.getURLCurrent()?index_of("id=")+3> 
9	<#assign indexFine= themeDisplay.getURLCurrent()?index_of("&from=")> 
10	 
11	<#if indexFine!=-1> 
12		<#assign journalArticleId = themeDisplay.getURLCurrent()?substring(indexInizio, indexFine)/> 
13		<#assign indexInizioFrom = themeDisplay.getURLCurrent()?index_of("from=")+5> 
14		<#assign provenienza = themeDisplay.getURLCurrent()?substring(indexInizioFrom)?replace('&[a-zA-Z]+;%', ' ', 'r')?replace('[^a-zA-Z0-9. ]', ' ', 'r')?replace('[\\d.]', ' ', 'r')/>  
15		 
16		<#assign indexBack = themeDisplay.getURLCurrent()?index_of("&back=")> 
17		<#assign backUrl = "javascript:history.go(-1);"> 
18		  
19		<#if indexBack!=-1> 
20			<#assign indiceInizioBack = themeDisplay.getURLCurrent()?index_of("back=")+5> 
21			 
22			 
23			<#assign stringaBack=themeDisplay.getURLCurrent()?substring(indiceInizioBack)?replace('&[a-zA-Z]+;%', ' ', 'r')?replace('[^a-zA-Z0-9. ]', ' ', 'r')?replace('[\\d.]', ' ', 'r')/>  
24			 
25			<#assign indiceInizioSearch = themeDisplay.getURLCurrent()?index_of("searchField=")+12> 
26			<#if indiceInizioSearch!=-1> 
27					<#assign stringaSearch=themeDisplay.getURLCurrent()?substring(indiceInizioSearch)?replace('&[a-zA-Z]+;%', ' ', 'r')?replace('[^a-zA-Z0-9. ]', ' ', 'r')?replace('[\\d.]', ' ', 'r')/>  
28				  
29			</#if> 
30			 
31			<#assign provenienza =themeDisplay.getURLCurrent()?substring(indexInizioFrom,indexBack)?replace('&[a-zA-Z]+;%', ' ', 'r')?replace('[^a-zA-Z0-9. ]', ' ', 'r')?replace('[\\d.]', ' ', 'r')/>  
32			<#if stringaBack?has_content> 
33				<#if stringaBack==languageUtil.get(locale, "label.NEWS")> 
34						<#assign backUrl="/web/csirt/notizie"/> 
35						<#assign provenienza=languageUtil.get(locale, "label.breadcrumbs.notizie")/> 
36					<#else> 
37						<#assign backUrl="/web/csirt/glossario?searchField=${stringaSearch}"/> 
38					</#if> 
39			</#if> 
40			 
41					 
42					 
43			 
44			 
45		</#if> 
46		 
47	</#if> 
48	<#if indexFine==-1> 
49		<#assign journalArticleId = themeDisplay.getURLCurrent()?substring(indexInizio)/> 
50		<#assign provenienza=  themeDisplay.getLayout().getName(themeDisplay.getLocale())?cap_first/> 
51	</#if> 
52	 
53<#else> 
54		<#assign provenienza=  themeDisplay.getLayout().getName(themeDisplay.getLocale())?cap_first/> 
55		 
56</#if> 
57 
58 
59 
60  
61<#assign homeUrl="/web/csirt/"> 
62<#attempt> 
63 
64<#if journalArticleId?has_content> 
65 
66 
67	<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
68  
69	<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
70  
71 <#list  assetEntryLocalService.getAssetEntries(-1, -1) as current> 
72   
73	<#if current.getEntryId()== journalArticleId?number > 
74		   
75				<#assign 
76						assetRenderer = current.getAssetRenderer() 
77						entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale)) 
78						docXml = saxReaderUtil.read(assetRenderer.getArticle().getContent()) 
79						dataCreazione = current.getCreateDate()  
80						/> 
81						<#assign Fields = assetRenderer.getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValues()/> 
82	         
83            	<#list Fields as currentField> 
84            		<#if currentField.getDDMFormField().getFieldReference()=='titolo'> 
85									<#assign titolo=currentField.getValue().getString(themeDisplay.getLocale()) /> 
86								</#if> 
87							</#list> 
88				 
89					  
90				<main class="container ct-breadcrumb" > 
91					<ul aria-label="${portletDisplay.getTitle()}" class="breadcrumb-horizontal pl-0" role="navigation"> 
92           <section id="breadcrumbs"> 
93							  <a href="${homeUrl}">Home</a> 
94								<#if backUrl !=""  > 
95                	<a  href="${backUrl}" aria-label="torna alla pagina ${provenienza}" class='no-reset'>${provenienza}</a> 
96								</#if> 
97                <p class="tr" >${titolo}</p> 
98            </section>		 
99					</ul> 
100					 
101				</main> 
102	</#if>			  
103 </#list> 
104<#else> 
105	<main class="container ct-breadcrumb" > 
106					<ul aria-label="${portletDisplay.getTitle()}" class="breadcrumb-horizontal pl-0" role="navigation"> 
107           <section id="breadcrumbs"> 
108							  <a href="${homeUrl}">Home</a></li> 
109                <p class="tr" >${provenienza}</p> 
110            </section>		 
111					</ul> 
112					 
113				</main> 
114</#if> 
115<#recover> 
116 
117	<main class="container ct-breadcrumb" > 
118					<ul aria-label="${portletDisplay.getTitle()}" class="breadcrumb-horizontal pl-0" role="navigation"> 
119           <section id="breadcrumbs"> 
120							  <a href="${homeUrl}">Home</a></li> 
121                <p class="tr" >${provenienza}</p> 
122            </section>		 
123					</ul> 
124					 
125				</main> 
126</#attempt> 

Code Injection

Tecnica informatica utilizzata da applicativi e software di ogni genere per “iniettare” linee di codice all’interno di un altro software, così da influenzarne il funzionamento. Questo meccanismo può essere utilizzato da un utente malintenzionato di aggiungere arbitrariamente porzioni di codice malevolo che verrà successivamente eseguito dall'applicazione.