Securityالأمان
We don't promise security. We attack ourselves in front of you.
Every security page you have ever read is a list of promises. This one runs five real attacks against itself in your browser right now and shows you the browser refusing each one. If our policy ever weakens, this page will be the first thing to tell you.
Live proofبرهان حيّ
Five attacks, running now
Not a simulation: each probe is the hostile action itself, and each verdict is read from the browser's own violation event or the exception the platform threw.
Press to run the attacks — or scroll here and they start on their own.
Postureالوضع
What actually stops it
These are not settings written once and forgotten — the build generates them from the code that ships, so they cannot drift away from the page.
The policyالسياسة
The actual policy our server sends
Not an illustrative example — this is the header itself, generated by the build from the code that ships.
- default-src'self'
- script-src'self' 'sha256-WdDJbdhgd2aGIBSxWgROYpfUiSkQnu8zmjTf1J991Hg=' 'sha256-ZriVhTnq4wXlPojnCD2FutefCZLnRiHrDymHXGI2euA=' 'sha256-ut8FCfD/iBAMUY8iebvxN0PzWbOrNiN2o3NDD53XFQY='
- style-src'self' 'sha256-KR4gUwZTOejHuo8xbgVympE27JrzLkGZLeE45cOmXJE='
- img-src'self' data:
- font-src'self'
- connect-src'self'
- form-action'self' https://wa.me
- frame-ancestors'none'
- base-uri'none'
- object-src'none'
- require-trusted-types-for'script'
- trusted-typesawalim-sw awalim-ledger
- upgrade-insecure-requests
Honestlyبصراحة
What this policy does not do
- It does not protect you from a mistake in content we write and trust ourselves. It stops injection, not bad judgement.
- It does not protect a device that is already compromised — a malicious browser extension comes before any policy.
- The site is static, with no database and no accounts, so there is nothing in it to steal. That is not a virtue of ours; it is the shape of the site.
- This page proves the policy you were served, and nothing more. If our host ever sent a header that differs from the one we declare, these five checks would still come back green for you. The build verifies the other side — that what is declared matches what ships — and the two together cover both ends.
- Trusted Types is what actually refuses the eval and innerHTML probes — measured: adding unsafe-eval to the policy does not bring them back, because the platform refuses the sink before the content policy is consulted.
Disclosure
Found a hole?
Tell us directly and we answer within one working day. We have no bounty programme yet and will not pretend otherwise — but we credit whoever reports, if they want it.
- We reply within two working days
- The code is entirely yours
- Published numbers, signed and verifiable