Foundation - Source Excerpt 27
Summary
This source excerpt preserves a bounded section of Anti-Christ.org/wp-content/plugins/fftac-foundation-core/inc/foundation.php so readers can inspect the evidence without opening the full source file.
**Source path:** Anti-Christ.org/wp-content/plugins/fftac-foundation-core/inc/foundation.php
* @param int $max_length Maximum allowed character length.
* @return string
*/
function antichrist_engine_security_sanitize_text_field($value, $max_length = 160)
{
$value = is_scalar($value) ? (string) $value : '';
return antichrist_engine_security_limit_string(sanitize_text_field($value), $max_length);
}
/**
* Sanitizes a multi-line text input and applies a length cap.
*
* @param mixed $value Raw input value.
* @param int $max_length Maximum allowed character length.
* @return string
*/
function antichrist_engine_security_sanitize_textarea_field($value, $max_length = 1500)
{
$value = is_scalar($value) ? (string) $value : '';
return antichrist_engine_security_limit_string(sanitize_textarea_field($value), $max_length);
}
/**
* Sanitizes an email input, lowercases it, and applies a conservative length cap.
*
* @param mixed $value Raw input value.
* @param int $max_length Maximum allowed character length.
* @return string
*/
function antichrist_engine_security_sanitize_email_field($value, $max_length = 190)
{
$value = is_scalar($value) ? (string) $value : '';
return strtolower(antichrist_engine_security_limit_string(sanitize_email($value), $max_length));
}
/**
* Returns a privacy-preserving request fingerprint for lightweight throttling.
*
* @param string $action Rate-limit action name.
* @return string
*/
function antichrist_engine_security_get_rate_limit_fingerprint($action)
{
$parts = array(
sanitize_key((string) $action),
antichrist_engine_security_limit_string((string) ($_SERVER['REMOTE_ADDR'] ?? ''), 80),
antichrist_engine_security_limit_string((string) ($_SERVER['HTTP_USER_AGENT'] ?? ''), 180),
);
if (function_exists('get_current_user_id')) {
$parts[] = (string) get_current_user_id();
}
return hash('sha256', implode('|', $parts));
}
/**
* Applies a transient-backed rate limit for public form submissions.
*
* @param string $action Action being limited.
* @param int $limit Maximum attempts in the window.
* @param int $window Window length in seconds.
* @return bool
*/
function antichrist_engine_security_check_rate_limit($action, $limit = 5, $window = 900)
{
$action = sanitize_key((string) $action);
$limit = max(1, (int) $limit);
$window = max(60, (int) $window);
$key = 'antichrist_engine_rate_' . $action . '_' . substr(antichrist_engine_security_get_rate_limit_fingerprint($action), 0, 32);
$bucket = get_transient($key);
if (!is_array($bucket)) {
$bucket = array('count' => 0);
}
$count = (int) ($bucket['count'] ?? 0);
if ($count >= $limit) {
return false;
}
$bucket['count'] = $count + 1;
set_transient($key, $bucket, $window);
return true;
}
/**
* Prints shared anti-automation fields for public forms.
*
* @param string $context Form context used to keep generated IDs unique.
* @return void
*/
function antichrist_engine_security_print_form_fields($context = 'form')
{
$context = sanitize_html_class(sanitize_key((string) $context), 'form');
$field_id = 'antichrist-engine-' . $context . '-confirmation';
echo '<input type="hidden" name="antichrist_engine_form_started_at" value="' . esc_attr((string) time()) . '">';
echo '<div class="antichrist-engine-honeypot" aria-hidden="true">';
echo '<label for="' . esc_attr($field_id) . '">' . esc_html__('Leave this field empty', 'antichrist-engine') . '</label>';
echo '<input id="' . esc_attr($field_id) . '" type="text" name="antichrist_engine_confirm_email" value="" autocomplete="off" tabindex="-1">';
echo '</div>';
}
/**
* Validates shared anti-automation fields on public forms.
*
* @param int $minimum_seconds Minimum plausible submit time.
* @param int $maximum_seconds Maximum age accepted before the form is stale.
* @return string Empty string on success; otherwise a safe notice code.
*/
function antichrist_engine_security_validate_form_submission($minimum_seconds = 1, $maximum_seconds = 0)
{
$maximum_seconds = $maximum_seconds ?: 6 * (defined('HOUR_IN_SECONDS') ? HOUR_IN_SECONDS : 3600);
$honeypot = trim(antichrist_engine_security_get_post_value('antichrist_engine_confirm_email'));
if ('' !== $honeypot) {
return 'invalid_submission';
}
$started_at = absint(antichrist_engine_security_get_post_value('antichrist_engine_form_started_at'));
if (!$started_at) {
return 'invalid_submission';
}
$age = time() - $started_at;
if ($age < (int) $minimum_seconds || $age > (int) $maximum_seconds) {
return 'invalid_submission';
}
return '';
}
/**
* Registers the private post type used for public signals-briefing signups.
*
* @return void
*/
function antichrist_engine_foundation_register_signal_signup_post_type()
{
register_post_type('fftac_signal_signup', array(
'labels' => array(
'name' => __('Signals Signups', 'antichrist-engine'),
'singular_name' => __('Signals Signup', 'antichrist-engine'),
),
'public' => false,
'show_ui' => true,
'show_in_menu' => true,
'exclude_from_search' => true,
'show_in_nav_menus' => false,
'show_in_admin_bar' => false,
'supports' => array('title'),
'menu_icon' => 'dashicons-email-alt',
));
}
add_action('init', 'antichrist_engine_foundation_register_signal_signup_post_type', 14);
/**
* Finds an existing signals signup by email.
*
* @param string $email Email address.
* @return int
*/
function antichrist_engine_foundation_find_signal_signup_by_email($email)
{
$email = strtolower(trim((string) $email));
$matches = get_posts(array(
'post_type' => 'fftac_signal_signup',
'post_status' => 'any',
'posts_per_page' => 1,
'fields' => 'ids',
'meta_key' => '_antichrist_signals_email',
'meta_value' => $email,
));
if (!$matches) {
return 0;
}
return (int) $matches[0];
}
/**
* Counts stored signals signups.
*
* @return int
*/
function antichrist_engine_foundation_signals_count()
{
$counts = wp_count_posts('fftac_signal_signup');
return isset($counts->private) ? (int) $counts->private : 0;
}
/**
* Handles public signals-briefing signup submissions.
*
* @return void
*/
function antichrist_engine_foundation_handle_signals_signup()
{
check_admin_referer('antichrist_engine_signals_signup');
$redirect_to = antichrist_engine_security_get_post_value('redirect_to');
$redirect_to = wp_validate_redirect($redirect_to, home_url('/'));
$submission_error = antichrist_engine_security_validate_form_submission();
if ($submission_error) {
wp_safe_redirect(add_query_arg('signals_status', $submission_error, $redirect_to));
exit;
}
if (!antichrist_engine_security_check_rate_limit('signals_signup', 8, HOUR_IN_SECONDS)) {
wp_safe_redirect(add_query_arg('signals_status', 'rate_limited', $redirect_to));
exit;
}
$name = antichrist_engine_security_sanitize_text_field(antichrist_engine_security_get_post_value('signals_name'), 120);
$email = antichrist_engine_security_sanitize_email_field(antichrist_engine_security_get_post_value('signals_email'), 190);
$interest = sanitize_key(antichrist_engine_security_get_post_value('signals_interest'));
$allowed_interests = array('verified-research', 'history-of-the-spirit', 'algorithmic-eschatology', 'signals-and-symbols');
if (!in_array($interest, $allowed_interests, true)) {
$interest = '';
}
if (!$email) {
wp_safe_redirect(add_query_arg('signals_status', 'empty_email', $redirect_to));
exit;
}
if (!is_email($email)) {
wp_safe_redirect(add_query_arg('signals_status', 'invalid_email', $redirect_to));
exit;
}
$existing_id = antichrist_engine_foundation_find_signal_signup_by_email($email);
if ($existing_id) {
update_post_meta($existing_id, '_antichrist_signals_name', $name);
update_post_meta($existing_id, '_antichrist_signals_interest', $interest);
if (function_exists('antichrist_engine_foundation_participants_database_sync_intake_post')) {
antichrist_engine_foundation_participants_database_sync_intake_post($existing_id, 'signals');
}
wp_safe_redirect(add_query_arg('signals_status', 'already_subscribed', $redirect_to));
exit;
}
$signup_id = wp_insert_post(array(
'post_type' => 'fftac_signal_signup',