feat: Add comprehensive documentation suite and reorganize project structure
- Created complete documentation in docs/ directory - Added PROJECT_OVERVIEW.md with feature highlights and getting started guide - Added ARCHITECTURE.md with system design and technical details - Added SECURITY.md with comprehensive security implementation guide - Added DEVELOPMENT.md with development workflows and best practices - Added DEPLOYMENT.md with production deployment instructions - Added API.md with complete REST API documentation - Added CONTRIBUTING.md with contribution guidelines - Added CHANGELOG.md with version history and migration notes - Reorganized all documentation files into docs/ directory for better organization - Updated README.md with proper documentation links and quick navigation - Enhanced project structure with professional documentation standards
This commit is contained in:
169
f_core/f_functions/functions.security.php
Normal file
169
f_core/f_functions/functions.security.php
Normal file
@@ -0,0 +1,169 @@
|
||||
<?php
|
||||
/*******************************************************************************************************************
|
||||
| Software Name : EasyStream
|
||||
| Software Description : High End YouTube Clone Script with Videos, Shorts, Streams, Images, Audio, Documents, Blogs
|
||||
| Software Author : (c) Sami Ahmed
|
||||
|*******************************************************************************************************************
|
||||
|
|
||||
|*******************************************************************************************************************
|
||||
| This source file is subject to the EasyStream Proprietary License Agreement.
|
||||
|
|
||||
| By using this software, you acknowledge having read this Agreement and agree to be bound thereby.
|
||||
|*******************************************************************************************************************
|
||||
| Copyright (c) 2025 Sami Ahmed. All rights reserved.
|
||||
|*******************************************************************************************************************/
|
||||
|
||||
defined('_ISVALID') or header('Location: /error');
|
||||
|
||||
/**
|
||||
* Security helper functions
|
||||
*/
|
||||
|
||||
/**
|
||||
* Secure output escaping for templates
|
||||
* @param string $string String to escape
|
||||
* @return string Escaped string
|
||||
*/
|
||||
function secure_output($string)
|
||||
{
|
||||
return VSecurity::escapeOutput($string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Secure JavaScript output escaping
|
||||
* @param string $string String to escape for JS
|
||||
* @return string Escaped string
|
||||
*/
|
||||
function secure_js($string)
|
||||
{
|
||||
return VSecurity::escapeJS($string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate CSRF token field for forms
|
||||
* @param string $action Action name
|
||||
* @return string HTML input field
|
||||
*/
|
||||
function csrf_field($action = 'default')
|
||||
{
|
||||
return VSecurity::getCSRFField($action);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate CSRF token from current request
|
||||
* @param string $action Action name
|
||||
* @return bool True if valid
|
||||
*/
|
||||
function validate_csrf($action = 'default')
|
||||
{
|
||||
return VSecurity::validateCSRFFromPost($action);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get secure parameter from GET
|
||||
* @param string $key Parameter name
|
||||
* @param string $type Parameter type
|
||||
* @param mixed $default Default value
|
||||
* @param array $options Validation options
|
||||
* @return mixed Sanitized value
|
||||
*/
|
||||
function get_param($key, $type = 'string', $default = null, $options = [])
|
||||
{
|
||||
return VSecurity::getParam($key, $type, $default, $options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get secure parameter from POST
|
||||
* @param string $key Parameter name
|
||||
* @param string $type Parameter type
|
||||
* @param mixed $default Default value
|
||||
* @param array $options Validation options
|
||||
* @return mixed Sanitized value
|
||||
*/
|
||||
function post_param($key, $type = 'string', $default = null, $options = [])
|
||||
{
|
||||
return VSecurity::postParam($key, $type, $default, $options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check rate limiting
|
||||
* @param string $key Unique identifier
|
||||
* @param int $maxAttempts Maximum attempts
|
||||
* @param int $timeWindow Time window in seconds
|
||||
* @return bool True if within limits
|
||||
*/
|
||||
function check_rate_limit($key, $maxAttempts = 10, $timeWindow = 300)
|
||||
{
|
||||
return VSecurity::checkRateLimit($key, $maxAttempts, $timeWindow);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate file upload securely
|
||||
* @param array $file $_FILES array element
|
||||
* @param array $allowedTypes Allowed MIME types
|
||||
* @param int $maxSize Maximum file size
|
||||
* @return array Validation result
|
||||
*/
|
||||
function validate_file_upload($file, $allowedTypes = [], $maxSize = 10485760)
|
||||
{
|
||||
return VSecurity::validateFileUpload($file, $allowedTypes, $maxSize);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log security events
|
||||
* @param string $event Event description
|
||||
* @param array $context Additional context
|
||||
*/
|
||||
function log_security_event($event, $context = [])
|
||||
{
|
||||
$logger = VLogger::getInstance();
|
||||
$logger->logSecurityEvent($event, $context);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log application errors with context
|
||||
* @param string $message Error message
|
||||
* @param array $context Additional context
|
||||
*/
|
||||
function log_app_error($message, $context = [])
|
||||
{
|
||||
$errorHandler = VErrorHandler::getInstance();
|
||||
$errorHandler->logApplicationError($message, $context);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log validation errors
|
||||
* @param string $field Field name
|
||||
* @param mixed $value Field value
|
||||
* @param string $rule Validation rule
|
||||
* @param array $context Additional context
|
||||
*/
|
||||
function log_validation_error($field, $value, $rule, $context = [])
|
||||
{
|
||||
$errorHandler = VErrorHandler::getInstance();
|
||||
$errorHandler->logValidationError($field, $value, $rule, $context);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log authentication errors
|
||||
* @param string $message Error message
|
||||
* @param string $username Username (if available)
|
||||
* @param array $context Additional context
|
||||
*/
|
||||
function log_auth_error($message, $username = null, $context = [])
|
||||
{
|
||||
$errorHandler = VErrorHandler::getInstance();
|
||||
$errorHandler->logAuthError($message, $username, $context);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log performance issues
|
||||
* @param string $message Performance issue description
|
||||
* @param float $executionTime Execution time in seconds
|
||||
* @param array $context Additional context
|
||||
*/
|
||||
function log_performance_issue($message, $executionTime, $context = [])
|
||||
{
|
||||
$logger = VLogger::getInstance();
|
||||
$logger->logPerformanceIssue($message, $executionTime, $context);
|
||||
}
|
||||
Reference in New Issue
Block a user