2012-03-30 13 views
4

Wir haben unsere PCI-Scans nicht bestanden, weil ColdFusion vorhersehbare CFIDs aufweist. Das genaue FAIL, das wir erhalten, ist "Vorhersagbare Cookie Session IDs". Jetzt ist der CFTOKEN nicht mehr vorhersehbar, da ich CF für die Verwendung von UUID für CFTOKEN konfiguriert habe. Die CFID ist jedoch immer noch vorhersehbar und von Änderungen in CF Admin nicht betroffen.Wie sichere ich CFID für die PCI-Compliance?

Ich weiß nicht wirklich, warum die CFID vorhersehbar ist eine Bedrohung, aber sie wollen, dass wir es beheben.

Ich konnte nichts über die Angelegenheit von googeling finden, und ich bin mir wirklich nicht sicher, was ich sonst tun soll.

Hat sich jemand anderes mit so etwas beschäftigt? Irgendwelche Vorschläge?

EDIT: Hier ist, was meine Application.cfc Datei wie folgt aussieht:

<cfcomponent output="false"> 

    <cfset this.name="DatabaseOnline"> 
    <cfset this.sessionManagement=true> 
    <cfset this.setDomainCookies=true> 
    <cfset this.setClientCookies=true> 
    <cfset this.sessionTimeOut=#CreateTimeSpan(0,20,0,0)#> 

</cfcomponent> 

Und mein CF Admin sieht wie folgt aus: http://i.imgur.com/k9OZH.png

Wie deaktiviere ich CFID?

Antwort

5

Die Verwendung von J2EE-Sitzungsvariablen sollte dieses Problem beheben.

Um dies zu tun, gehen Sie zu CF-Administrator. Servereinstellungen -> Speichervariablen und aktivieren Sie das Kontrollkästchen 'J2EE-Sitzungsvariablen verwenden'.

Sie können mehr Informationen finden Sie hier http://helpx.adobe.com/coldfusion/kb/predictable-cookie-session-ids-reported.html

+1

Das ist genau das, was ich getan habe, und es kümmert sich um CFTOKEN, aber sie wollen CFID auch randomisiert werden, die ich einfach nicht bekomme. Ich habe noch nie von jemandem gehört, der CFID randomisieren muss, und ich weiß nicht einmal, ob das möglich ist, da CF dies benötigt, um die Benutzer zu verfolgen. – Amir

+0

Sie sollten nicht mehr länger einen CFID-Cookie erhalten, wenn diese Einstellung diese durch den Jsession-Cookie ersetzt. Versuchen Sie, Ihre Cookies zu löschen und erneut zu starten. – baynezy

+1

Auch wenn J2EE-Sitzungsvariablen aktiviert sind, erhalten Sie immer noch CFID- und CFTOKEN-Cookies, sofern Sie sie nicht deaktivieren. Siehe diese Antwort: http://stackoverflow.com/a/268986/21960 – ale

3

zum Scanmittel erklärt, dass der CFID sequentiell ist, ist aber ohne eine entsprechende CFTOKEN Cookie nicht gültig, die randomisiert ist. Da die Sitzung nicht mit der ID allein gehackt werden kann, mildert sie den Grund für den Scan-Fehler. Ihr automatisierter Test setzt voraus, dass der CFID-Cookie die Sitzung selbst steuert, was nicht der Fall ist. Jeder Scan-Anbieter, mit dem ich gearbeitet habe, hat dies als mildernden Faktor akzeptiert und diesen spezifischen Test auf CF-basierten Websites entweder deaktiviert oder außer Kraft gesetzt.

Wenn keine der Sites auf dem CF-Server Sitzungsvariablen verwendet, können Sie alternativ die Sitzungsverwaltung vollständig deaktivieren, und CF gibt die Cookies überhaupt nicht aus. Wenn sie benötigt werden, sollte die obige Erklärung, wie CF-Sitzungen verwaltet werden, Sie durchbringen.

+0

Vielen Dank dafür, ich denke, das könnte mir helfen. Es gibt Abschnitte in der Site, die Sitzungsvariablen benötigen, aber ich denke (ich hoffe, ich mache das richtig), indem ich diese beiden Dinge zu meiner application.cfc-Datei hinzufüge: es sollte sich um dieses Problem kümmern. Auf diese Weise funktionieren Sitzungen immer noch, aber sie verwenden je J2SEE. Wie ich schon sagte, bin ich mir nicht 100% sicher, aber das klingt richtig für mich. – Amir

+0

Denken Sie daran, dass "Client" - Variablen von "Session" - Variablen getrennt sind (im Falle der Einstellung "clientManagement").Wenn Sie "setClientCookies" deaktivieren, werden die CFID- und CFTOKEN-Cookies nicht automatisch gesendet, und Sie müssen sicherstellen, dass diese Werte auf der URL für Seiten weitergegeben werden, auf denen Sitzungsverwaltung/-variablen verwendet werden. –