sslなページを安全にする

http(cookie?)の仕様として、URL(URI?)がhttpsだからといってcookieSSL上でやり取りされるとは決まっていません。httpsなページでcookieSSLを適用するためにはcookieSSLの利用を明示しなければいけません。
つまり、httpsなURLでJavaScriptPHPからcookieを発行したいならそうしたプログラムを書かなければいけません。そうしないとhttpsなページで発行したcookieがセキュアでない状態となり、セッションハイジャックの危険性があります。
Mapleはデフォルトでそれを考慮した作りになっていなかったので独自に処理を追加しました。作業としては$MAPLE_ROOT/maple/core/Session.class.phpにいくつかの関数を追加し、それに伴い$MAPLE_ROOT/maple/filter/Filter_Session.class.phpを変更しました。
本当はこのような処理を追加するのではなくphp.iniや.htaccessでsession.cookie_secure=1とすべきだとは思います。
以下サンプル。

$MAPLE_ROOT/maple/core/Session.class.phpに以下の関数を追加。
/**
* PATHを設定する
*
* @param string $path
* @access public
* @since 3.0.0
*/
function setPath($path) {
if (!isset($path)) {
return;
}
$cookie_params = session_get_cookie_params();
session_set_cookie_params($cookie_params['lifetime'],
$path,
$cookie_params['domain'],
$cookie_params['secure']);
}

/**
* ドメインを設定する
*
* @param string $domain
* @access public
* @since 3.0.0
*/
function setDomain($domain) {
if (!isset($domain)) {
return;
}
$cookie_params = session_get_cookie_params();
session_set_cookie_params($cookie_params['lifetime'],
$cookie_params['path'],
$domain,
$cookie_params['secure']);
}

/**
* SSL利用時などにsecure属性を設定する
*
* @param string $secure true or false
* @access public
* @since 3.0.0
*/
function setSecure($secure) {
if (!isset($secure)) {
return;
}
$cookie_params = session_get_cookie_params();
$lifetime = $cookie_params['lifetime'];
$path = $cookie_params['path'];
$domain = $cookie_params['domain'];
if (preg_match('/^secure$/i', $secure)
|| $secure === true || $secure === '1' || $secure === 1) {
$secure = true;
} else {
$secure = false;
}
session_set_cookie_params($lifetime, $path, $domain, $secure);
}

$MAPLE_ROOT/maple/fileter/Filter_Session.class#execute()の中ごろに追加。
if (isset($attributes["path"])) {
$session->setPath($attributes["path"]);
}
if (isset($attributes["domain"])) {
$session->setDomain($attributes["domain"]);
}
if (isset($attributes["secure"])) {
$session->setSecure($attributes["secure"]);
}

$MAPLE_ROOT/webapp/test/form/maple.phpでの書き方。
[Session]
secure = true
path = "/cart/shop1/"
domain = "ssl.example.com"