আমি কিভাবে আমার কুকিজ সেট করতে পারেন PHP appsযেমন HttpOnly cookies?
$cookie->setHttpOnly(true);দিয়ে github.com/delight-im/PHP-Cookie
আমি কিভাবে আমার কুকিজ সেট করতে পারেন PHP appsযেমন HttpOnly cookies?
$cookie->setHttpOnly(true);দিয়ে github.com/delight-im/PHP-Cookie
উত্তর:
PHPSESSIDডিফল্ট), দেখতে @ রিচি এর উত্তরsetcookie()এবং setrawcookie()ফাংশন, চালু httponlyপরামিতি, পিএইচপি 5.2.0 অন্ধকার বয়সের মধ্যে পিছনে, এই সুন্দর এবং সহজ করে। বাক্য বাক্য অনুসারে সহজভাবে para ম পরামিতিটিকে সত্য হিসাবে সেট করুন
সংশ্লেষ জন্য ফাংশন সিনট্যাক্স সরল
setcookie( $name, $value, $expire, $path, $domain, $secure, $httponly )
setrawcookie( $name, $value, $expire, $path, $domain, $secure, $httponly )
NULLআপনি ডিফল্ট হিসাবে থাকতে চান এমন প্যারামিটারগুলির জন্য প্রবেশ করান । আপনার যদি secureপ্যারামিটারটি সেট করা উচিত হয় তবে আপনি তা বিবেচনা করতেও পারেন ।
এটি পুরানো, নিম্ন-স্তরের header()ফাংশনটি ব্যবহার করেও সম্ভব :
header( "Set-Cookie: name=value; httpOnly" );
set_cookieযদি আমাদের অন্যান্য পরামিতিগুলি সেট করার প্রয়োজন না হয় তবে আমরা শেষ পর্যন্ত কলটিকে কম ভার্বোস করতে সক্ষম হব । উদাহরণস্বরূপ set_cookie($name, $value, httponly: true)।
অ্যাপাচে পিএইচপি-র নিজস্ব সেশন কুকিজের জন্য:
এটি আপনার অ্যাপাচি কনফিগারেশনে যুক্ত করুন বা.htaccess
<IfModule php5_module>
php_flag session.cookie_httponly on
</IfModule>
এটি কোনও স্ক্রিপ্টের মধ্যে সেট করা যেতে পারে, যতক্ষণ না এটি আগে বলা হয় session_start()।
ini_set( 'session.cookie_httponly', 1 );
php.ini।
php_valueকরা php_flagকাজ করছে না। আমি শুধু আমার সার্ভারে এটা চেষ্টা ..
php_flag, আপনাকে অবশ্যই মানটি পরিবর্তন করতে হবে - ম্যানুয়ালটি থেকে হয় onবা off- হয় ।
নোট করুন যে পিএইচপি সেশন কুকিজ httponlyডিফল্টরূপে ব্যবহার করে না ।
এটা করতে:
$sess_name = session_name();
if (session_start()) {
setcookie($sess_name, session_id(), null, '/', null, null, true);
}
নোটের কয়েকটি দম্পতি এখানে:
session_name()
আগে ফোন করতে হবেsession_start() সচেতন থাকুন যে এইচটিপিওনি ক্রস-সাইট স্ক্রিপ্টিং থামায় না; পরিবর্তে, এটি একটি সম্ভাব্য আক্রমণকে নিরপেক্ষ করে এবং বর্তমানে এটি কেবল আইই তে করে দেয় (ফায়ারফক্স এক্সএমএলএইচটিপিআরকোয়েস্টে এইচটিপি-র কেবল কুকিজ উন্মোচিত করে, এবং সাফারি একে একে সম্মান করে না)। যে কোনও উপায়ে, এইচটিটিপিকে কেবল চালু করুন, তবে এর জন্য বাণিজ্যে এক ঘন্টাও আউটপুট ফিল্টারিং এবং ফজ পরীক্ষার ছাড়বেন না।
ইলিয়া থেকে এখানে ব্যাখ্যা ... 5.2 কেবল যদিও
পিএইচপি 5.2- তে কেবল কুকি পতাকা সমর্থন support
যেমন নিবন্ধে বলা হয়েছে, আপনি পিএইচপি এর পূর্ববর্তী সংস্করণগুলিতে শিরোনামটি নিজে সেট করতে পারেন
header("Set-Cookie: hidden=value; httpOnly");
আপনি সেট কুকি ফাংশনে এটি নির্দিষ্ট করতে পারেন পিএইচপি ম্যানুয়াল দেখুন
setcookie('Foo','Bar',0,'/', 'www.sample.com' , FALSE, TRUE);
আপনি এটি একটি হেডার ফাইলে ব্যবহার করতে পারেন।
// setup session enviroment
ini_set('session.cookie_httponly',1);
ini_set('session.use_only_cookies',1);
এইভাবে ভবিষ্যতের সমস্ত সেশন কুকিজ httponly ব্যবহার করবে।
পিএইচপি> = 7.0 এর পর থেকে আরও মার্জিত সমাধান
session_start(['cookie_lifetime' => 43200,'cookie_secure' => true,'cookie_httponly' => true]);