CF – connessioni multiple



Come limitare le connessioni simultanee da uno stesso ip ad un sito, integrando questo script nell’Application.cfm

 

<cfsilent>
<!— init —>
<cfset connectionLimit=3>
<cfset secondiRange = 5>
<cfset secondi = int(second(now()) / secondiRange) * secondiRange>
<cfset data="d" & dateFormat(now(),"YYMMDD") & timeFormat(now(),"HHMM") & secondi>
<cfset ip="ip" & replaceNoCase(cgi.REMOTE_ADDR,".","_","all")>
<cfset connectionIp="application.checkConnection.#ip#">
<cfset connectionIpData="application.checkConnection.#ip#.#data#">
<cfoutput>
<h3>dati init</h3>
<b>Connessioni permesse</b>: <i>#connectionLimit#</i> in <i>#secondiRange#</i><br />
<b>data</b>: #data#<br />
<b>connectionIp</b>: #connectionIp#<br />
<b>connectionIpData</b>: #connectionIpData#<br />
<br />
</cfoutput>

<cflock timeout="5" name="lk_checkConnection">
<!— creo la variabile di controllo —>
<cfif not isDefined("application.checkConnection")>
<cfset application.checkConnection = StructNew()>
</cfif>

<!— creo la variabile ip —>
<cfif not isDefined("#connectionIp#")>
<cfset "#connectionIp#" = StructNew()>
</cfif>

<!— creo la variabile ipData —>
<cfif not isDefined("#connectionIpData#")>
<cfset "#connectionIpData#" = 0 >
</cfif>

<h3>Risultati test</h3>
<!— utente in data esistente, controllo connessioni —>
<cfif evaluate(connectionIpData) gte connectionLimit>
<cfset checkConnection=false>
<cfelse>
<cfset checkConnection=true>
<cfset "#connectionIpData#"= evaluate(connectionIpData) + 1>
</cfif>
</cflock>

<!— test —>
<cfdump var="#application#">
</cfsilent>
<cfif not CheckConnection>
Superato il limite di connessioni contemporanee.<br />
Si prega di riprovare pi&ugrave; tardi.<br />
Si segnala altres&igrave; che lo scaricamento tramite particolari software dell’intero sito <br />
verr&agrave; segnalato alle autorit&agrave; competenti.<br />
</cfif>

Se trovi questo articolo su un blog diverso da “blog.merlinox.com” si tratta probabilmente di una copia non autorizzata. L’indirizzo originale di questo articolo è: CF – connessioni multiple scritto da .

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

*

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>