Bag of Web tricks
Select your language:
Where would you like to go?
Table of contents
Home
The choice of document type
The MIME type
The doctype declaration
Accessibility
Why all this?
Document types
Accessible layout
Color schemes
The Dalton mode
Font types
Font sizes
Session not necessary!
Simplified language
Too complex – now what?
Effecting a better comprehension
Support and challenge
Implementation
Accessible operation
Keyboard support
Accessibility issues
Graphics
Flash
Phrasing
ARIA
Elements and their roles
Defining roles
States of elements
Forms
Labelling
Required fields
Feedback
Fighting spam!
Captchas – really necessary?
Spam-free guest book
How MySQL can help
How blacklists can help
Deploying spam traps
Content analysis
How moderating the guest book helps
Last but not least: The confirmation mail
Spam-resistant web statistics
Pimp your Apache
Power logging
Setting MIME types
Error documents – do it yourself
Why do it yourself in te first place?
Your own directory for error documents
Registering the error documents
Creating new error documents
Setting up virtual hosts
Stop the dork
Now what's going on here?
Denying unwanted access
Keeping junk data out of the logs
Cutting off referrer spam
Give the dorks a dose of their own medicine
Establish selective blocks
Traps for web scrapers
SSI
What are SSI?
Activate SSI
Predefining common elements
Dynamic content without CGI
Dynamic navigation
The central menu
The language selection
Show time of last modification
Security
SSL
Basics
Obtaining certificates
Security risks
SSL tweaked
Do away with SSL, TLSv1.0, and TLSv1.1!
Strict Transport Security
Private Key Pinning
Certificate Authority Authorization
Source restrictions
Prevent embedding into frames
CORS
Content of a different origin
Hotlinking
Verifying origins
Multiple valid origins
Referrer policy
Managing API permissions
Web pages for smartphones
Reasons for adaption
Adjusting the viewport
Navigation problems
Element sizes
Dealing with oversized content
Build a responsive design
Dedicated layout for mobile devices
XHTML
XHTML and HTML compared
Basics
The framework
Problems
Misconceptions
CSS
Basics
The box model
Defining the page layout
Fundamental styles
Selectors
Combinators
Properties
Text styles
Text formats
Text alignment
Boxes
Positioning
Display
The background
Animations
Pseudoelements and -classes
Creating a basic layout
Browser switches
Printer-friendly layout
Style selector
CSS and scripts
CSS and CGI
Color selection
Font sizes
Font types
Skins
JavaScript
Basics
Structure
The strict mode
Integration
Delayed execution
Error handling
The Document Object Model
Modules
Fundamental problems of JavaScript
Scope and namespace
Encapsulation
Object-oriented programming
AJAX
XMLHttpRequest
CORS
Script initialization
Usages
Tooltips
Country selector
Context menus
Error report
Dynamic help pages
Menu controls by keyboard
Debugging aids
Gimmicks
Display window dimensions
Offer a button for printing
Open links in a new window
Extensions
XHTML: Add document.write() to the DOM
Setting, reading and clearing cookies
Reading metadata
Modal elements
Supporting techniques
The document type switch
Content switch
Programming APIs
Security aspects
Reliability
Nonsensical frames
Cookies
Definition
Fields of application
Privacy concerns
Security aspects
Self-made control panel
Overview on running services
Web server controls
Crontab editor
Controlling virtual machines
Glossary
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
© 2013 - 2022 by Olaf Martens
Imprint
Privacy Policy
Nonliability statement
Block my IP address
News
Contact
Guest book
Forum
Services
Keys for SSH
Request for SSL certificate
Resolve domain name
Define a virtual machine
Fingerprints of certificates
Sanitize defective HTML
FAQ
Sitemap
Support