mirror of
https://github.com/wavelog/wavelog.git
synced 2026-03-22 10:24:14 +00:00
Merge pull request #2314 from iu2frl/dev
This commit is contained in:
@@ -653,6 +653,13 @@ class API extends CI_Controller {
|
||||
break;
|
||||
}
|
||||
|
||||
// Handle optional cat_url
|
||||
if (isset($obj['cat_url']) && !empty($obj['cat_url'])) {
|
||||
$cat_url = $this->sanitize_cat_url($obj['cat_url']);
|
||||
if ($cat_url !== false) {
|
||||
$obj['cat_url'] = $cat_url;
|
||||
}
|
||||
}
|
||||
|
||||
// Store Result to Database
|
||||
$this->cat->update($obj, $user_id, $operator);
|
||||
@@ -1093,4 +1100,28 @@ class API extends CI_Controller {
|
||||
echo json_encode(['status' => 'successful', 'message' => 'Export successful', 'statistics' => $data]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sanitize and validate callback URL
|
||||
* @param string $url The URL to sanitize
|
||||
* @return string|false Returns sanitized URL or false if invalid
|
||||
*/
|
||||
private function sanitize_cat_url($url) {
|
||||
// Basic sanitization
|
||||
$url = trim($url);
|
||||
|
||||
// Check if URL is valid and uses http or https
|
||||
if (!filter_var($url, FILTER_VALIDATE_URL) ||
|
||||
(!preg_match('/^https?:\/\//', $url))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Remove trailing slashes
|
||||
$url = rtrim($url, '/');
|
||||
|
||||
// Additional XSS cleaning
|
||||
$url = $this->security->xss_clean($url);
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user