Wie kann ich die Cookies in meiner PHP apps
als HttpOnly cookies
setzen?Wie richte ich HttpOnly Cookies in PHP ein?
Antwort
- Für Cookies finden diese Antwort.
- Für eigenen Session-Cookie PHP (
PHPSESSID
standardmäßig aktiviert), @richie's answer
Die setcookie()
und setrawcookie()
Funktionen eingeführt, um die httponly
Parameter, zurück in den dunklen Zeiten der PHP 5.2.0, so dass diese schön sehen Und einfach. Setzen Sie einfach als Standard den 7. Parameter auf true, gemäß der Syntax
Funktionssyntax der Kürze halber vereinfacht
setcookie( $name, $value, $expire, $path, $domain, $secure, $httponly)
setrawcookie($name, $value, $expire, $path, $domain, $secure, $httponly)
Geben Sie NULL
für Parameter, die Sie wollen bleiben. Sie sollten auch überlegen, ob Sie den Parameter secure
einstellen sollten.
Es ist auch möglich, mit der älteren, unterer Ebene header()
Funktion:
header("Set-Cookie: name=value; httpOnly");
Erklärung hier aus Ilia ... 5.2 nur wenn
httpOnly cookie flag support in PHP 5.2
Wie in diesem Artikel erwähnt, können Sie den Header selbst in früheren Versionen von PHP gesetzt
header("Set-Cookie: hidden=value; httpOnly");
<?php
//None HttpOnly cookie:
setcookie("abc", "test", NULL, NULL, NULL, NULL, FALSE);
//HttpOnly cookie:
setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);
?>
Sie können angeben es in der Menge Cookie-Funktion see the php manual
setcookie('Foo','Bar',0,'/', 'www.sample.com' , FALSE, TRUE);
Beachten Sie, dass Httponly nicht Cross-Site-Scripting nicht zu stoppen; Stattdessen neutralisiert es einen möglichen Angriff und macht dies derzeit nur im IE (FireFox macht HttpOnly-Cookies in XmlHttpRequest verfügbar, und Safari berücksichtigt sie überhaupt nicht). Auf jeden Fall schalten Sie HttpOnly ein, lassen Sie aber nicht einmal eine Stunde Output-Filterung und Fuzz-Tests in Kauf.
Diese Situation kann sich seit '08 jetzt geändert haben. Hier ist eine aktuelle/aktualisierte Liste: http://stackoverflow.com/questions/528405/which-browsers-do-support-httponly-cookies – Kzqai
Ich möchte wirklich meinen Downvote entfernen. –
Beachten Sie, dass PHP-Sitzungscookies httponly
standardmäßig nicht verwenden.
, das zu tun:
$sess_name = session_name();
if (session_start()) {
setcookie($sess_name, session_id(), null, '/', null, null, true);
}
Ein paar weitere Anmerkungen hier:
- Sie haben auch ‚zu setzt den Standardpfad Dieser
session_name()
vorsession_start()
- anrufen/', die ist für Opera erforderlich, aber die PHP Session-Cookies tun standardmäßig nicht entweder.
http://php.net/manual/en/function.session-set-cookie-params.php Es kann automatisch über die oben genannte PHP-Funktion statt benutzerdefinierte Codierung erfolgen. – Ryaner
Für PHP eigene Session-Cookies auf Apache:
fügen Sie diese zu Ihrer Apache-Konfiguration oder .htaccess
<IfModule php5_module>
php_flag session.cookie_httponly on
</IfModule>
Dies kann auch in einem Skript festgelegt werden, solange es vor session_start()
genannt wird.
ini_set('session.cookie_httponly', 1);
+1, da dies eine gute Sache (für die Sicherheit) ist, die auf Ihrem gesamten Server vorhanden ist, aber stattdessen zur 'php.ini' hinzugefügt wurde. –
Bitte beachten Sie, dass stattdessen php_flag verwendet werden sollte: "Verwenden Sie nicht php_value, um boolesche Werte zu setzen. Stattdessen sollte php_flag verwendet werden." http://php.net/manual/en/configuration.changes.php –
@OndrejMachulda Das Ändern von 'php_value' auf' php_flag' funktioniert nicht. Ich habe es gerade auf meinem Server versucht. – Nate
Sie können dies in einer Header-Datei verwenden.
// setup session enviroment
ini_set('session.cookie_httponly',1);
ini_set('session.use_only_cookies',1);
So verwenden alle zukünftigen Cookies httponly.
Just FYI session.use_only_cookies ist standardmäßig in PHP> 5.3 –
und richtig ist "alle zukünftigen ** Sitzung ** Cookies" verwenden httponly, nicht benutzerdefinierte ... – qdev
Die richtige Syntax des php_flag Befehls ist
php_flag session.cookie_httponly On
Und darüber im Klaren sein, nur erste Antwort vom Server des Cookie und hier festgelegt (zum Beispiel können Sie sehen die „Httponly“ Richtlinie. So zum Testen Cookies löschen aus dem Browser nach jeder Testanfrage
- 1. Wie bekomme ich httpOnly Cookies von android.webkit.CookieManager
- 2. ein Httponly-Cookies mit javax.servlet 2.5
- 3. jQuery Redirects und HttpOnly Cookies
- 4. Welche Browser unterstützen HttpOnly-Cookies?
- 5. Wie richte ich einen PHP-Daemon ein?
- 6. Wie richte ich PHP und MySQL ein?
- 7. HTTPOnly-Cookies auf Windows Phone speichern
- 8. Wie genau konfigurieren Sie httpOnly-Cookies in ASP Classic?
- 9. Wie konfigurierst du HttpOnly Cookies in tomcat/java webapps?
- 10. Erzwingen von HttpOnly-Cookies mit JRun/ColdFusion
- 11. Wie richte ich eine Nummer in PHP ein?
- 12. Wie richte ich PreAuthenticationAuthenticationProvider ein?
- 13. Wie richte ich die Kommunikation zwischen PHP und C++ ein?
- 14. Senden Mobile Browser httpOnly Cookies über den HTML5 Audio-Tag?
- 15. Erhalten Sie Cookies Parameter in PHP?
- 16. Setzen von Cookies mit HTTPOnly Flags im Codeigniter
- 17. ASP MVC 3 Cookies verlieren Httponly und sichere Flaggen
- 18. Wie richte ich Emacs-Farben korrekt ein?
- 19. Wie richte ich ein Paketobjekt an?
- 20. Wie richte ich eine Jcurses-Bibliothek ein?
- 21. Wie richte ich gitlab CI-Läufer ein?
- 22. Wie richte ich eine interne Website ein?
- 23. Wie setze ich die Einstellung HttpOnly des Session-Cookies auf false?
- 24. Android: Wie richte ich ein TextView richtig?
- 25. Wie richte ich einen eigenen Proxy ein?
- 26. Wie richte ich Geocoder mit google_premier ein?
- 27. Wie richte ich die nativ-Datei ein?
- 28. Wie richte ich ein References_one in Mongoid ein?
- 29. Wie richte ich ein Django-Projekt in OSx korrekt ein?
- 30. Wie setze ich das HttpOnly Flag auf JSF/Richfaces
http://StackOverflow.com/Questions/528405/which-browsers-do-support-httponly-cookies Hat die Browser-Support-Info – Kzqai
@Tchalvak Nein, die aktuellen Antworten sind immer noch autoritativ Nichts hat sich seit 2008 in Bezug auf die HTTP-only-Cookie-Einstellung in PHP geändert. _Welche Browser HTTP unterstützen - nur Cookies_ sind anders Frage, mit einer anderen Antwort. – lanzz
Sie können '$ cookie-> setHttpOnly (true);' mit https://github.com/delight-im/PHP-Cookie verwenden – caw