secure-ui-components 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +131 -7
- package/dist/components/secure-form/secure-form.d.ts.map +1 -1
- package/dist/components/secure-form/secure-form.js +15 -0
- package/dist/components/secure-form/secure-form.js.map +1 -1
- package/dist/components/secure-input/secure-input.css +67 -1
- package/dist/components/secure-input/secure-input.d.ts +14 -0
- package/dist/components/secure-input/secure-input.d.ts.map +1 -1
- package/dist/components/secure-input/secure-input.js +63 -0
- package/dist/components/secure-input/secure-input.js.map +1 -1
- package/dist/components/secure-password-confirm/secure-password-confirm.d.ts.map +1 -1
- package/dist/components/secure-password-confirm/secure-password-confirm.js +2 -0
- package/dist/components/secure-password-confirm/secure-password-confirm.js.map +1 -1
- package/dist/components/secure-telemetry-provider/secure-telemetry-provider.d.ts +1 -0
- package/dist/components/secure-telemetry-provider/secure-telemetry-provider.d.ts.map +1 -1
- package/dist/components/secure-telemetry-provider/secure-telemetry-provider.js +32 -2
- package/dist/components/secure-telemetry-provider/secure-telemetry-provider.js.map +1 -1
- package/dist/components/secure-textarea/secure-textarea.css +66 -1
- package/dist/components/secure-textarea/secure-textarea.d.ts +11 -0
- package/dist/components/secure-textarea/secure-textarea.d.ts.map +1 -1
- package/dist/components/secure-textarea/secure-textarea.js +56 -0
- package/dist/components/secure-textarea/secure-textarea.js.map +1 -1
- package/dist/core/base-component.d.ts +29 -0
- package/dist/core/base-component.d.ts.map +1 -1
- package/dist/core/base-component.js +96 -2
- package/dist/core/base-component.js.map +1 -1
- package/dist/core/types.d.ts +23 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/package.json +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,17 +6,19 @@ Security-first Web Component library with built-in behavioral telemetry. Zero de
|
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
|
-
- **
|
|
9
|
+
- **11 Secure Components** — Input, Textarea, Select, Form, File Upload, DateTime, Table, Submit Button, Card, Password Confirm, Telemetry Provider
|
|
10
10
|
- **4-Tier Security System** — `public`, `authenticated`, `sensitive`, `critical`
|
|
11
11
|
- **Behavioral Telemetry** — Every field collects typing patterns, paste detection, dwell time, and correction signals automatically
|
|
12
12
|
- **Risk Scoring** — `<secure-form>` aggregates field signals into a session-level risk score at submission
|
|
13
|
-
- **
|
|
13
|
+
- **Injection Detection** — All input fields scan for XSS, script injection, and template injection patterns in real time; fires `secure-threat-detected` with the matched pattern ID
|
|
14
|
+
- **CSRF Threat Detection** — `<secure-form>` fires `secure-threat-detected` at submission when a CSRF token is absent on `sensitive` or `critical` tier forms
|
|
15
|
+
- **Signed Envelopes** — `<secure-telemetry-provider>` detects automation/headless browsers, accumulates threat signals, and signs every submission with HMAC-SHA-256 (signing key cached per session)
|
|
14
16
|
- **Zero Dependencies** — Pure TypeScript, no runtime dependencies
|
|
15
17
|
- **Progressive Enhancement** — All components render meaningful markup and work without JavaScript
|
|
16
18
|
- **CSP-Safe** — Styles loaded via `<link>` from `'self'`; no `unsafe-inline` required
|
|
17
19
|
- **SSR Friendly** — Adopts server-rendered markup on upgrade; no document access in constructors
|
|
18
20
|
- **Fully Customisable** — CSS Design Tokens + `::part()` API
|
|
19
|
-
- **Comprehensive Testing** —
|
|
21
|
+
- **Comprehensive Testing** — 1066 tests, 80%+ branch coverage
|
|
20
22
|
|
|
21
23
|
---
|
|
22
24
|
|
|
@@ -30,13 +32,13 @@ Field interaction → Behavioral signals → Risk score → Signed envelop
|
|
|
30
32
|
```
|
|
31
33
|
|
|
32
34
|
**Layer 1 — Field-level signals** (`SecureBaseComponent`)
|
|
33
|
-
Every secure field silently records: dwell time from focus to first keystroke, typing velocity, correction count (backspace/delete), paste detection, autofill detection, focus count, and blur-without-change patterns.
|
|
35
|
+
Every secure field silently records: dwell time from focus to first keystroke, typing velocity, correction count (backspace/delete), paste detection, autofill detection, focus count, and blur-without-change patterns. On every input event, the raw value is scanned against injection patterns (XSS, script tags, JS protocols, event handlers, template injection, and more) — a `secure-threat-detected` event is dispatched if a match is found, with the matched pattern ID but never the raw value.
|
|
34
36
|
|
|
35
37
|
**Layer 2 — Session aggregation** (`<secure-form>`)
|
|
36
|
-
At submission, the form queries `getFieldTelemetry()` from every child field, produces per-field snapshots, and computes a composite risk score from 0–100. The telemetry payload travels alongside form data in a single `fetch` request as `_telemetry`.
|
|
38
|
+
At submission, the form queries `getFieldTelemetry()` from every child field, produces per-field snapshots, and computes a composite risk score from 0–100. For `sensitive` and `critical` tiers, a missing CSRF token at submission time triggers a `secure-threat-detected` event before the request proceeds. The telemetry payload travels alongside form data in a single `fetch` request as `_telemetry`.
|
|
37
39
|
|
|
38
40
|
**Layer 3 — Environmental signals** (`<secure-telemetry-provider>`)
|
|
39
|
-
An optional overlay that wraps `<secure-form>`. Monitors for WebDriver/headless flags, DOM script injection (via `MutationObserver`), suspicious screen dimensions, and pointer/keyboard activity. Signs the final envelope with HMAC-SHA-256 so the server can detect replay attacks.
|
|
41
|
+
An optional overlay that wraps `<secure-form>`. Monitors for WebDriver/headless flags, DOM script injection (via `MutationObserver`), suspicious screen dimensions, and pointer/keyboard activity. Accumulates all `secure-threat-detected` signals from child components during the session into `threatSignals`. Signs the final envelope with HMAC-SHA-256 using a cached `CryptoKey` (imported once per key value, re-imported only on rotation) so the server can detect replay attacks and inspect any injection or CSRF threats that occurred during the session.
|
|
40
42
|
|
|
41
43
|
**What the server receives (enhanced submission):**
|
|
42
44
|
|
|
@@ -71,7 +73,16 @@ An optional overlay that wraps `<secure-form>`. Monitors for WebDriver/headless
|
|
|
71
73
|
"webdriverDetected": false,
|
|
72
74
|
"headlessDetected": false,
|
|
73
75
|
"mouseMovementDetected": true,
|
|
74
|
-
"pointerType": "mouse"
|
|
76
|
+
"pointerType": "mouse",
|
|
77
|
+
"threatSignals": [
|
|
78
|
+
{
|
|
79
|
+
"fieldName": "comment",
|
|
80
|
+
"threatType": "injection",
|
|
81
|
+
"patternId": "script-tag",
|
|
82
|
+
"tier": "sensitive",
|
|
83
|
+
"timestamp": 1743616200000
|
|
84
|
+
}
|
|
85
|
+
]
|
|
75
86
|
},
|
|
76
87
|
"signature": "7d3a..."
|
|
77
88
|
}
|
|
@@ -219,6 +230,7 @@ el.blur()
|
|
|
219
230
|
|-------|--------|
|
|
220
231
|
| `secure-input` | `{ name, value, masked, tier }` |
|
|
221
232
|
| `secure-audit` | `{ event, tier, timestamp, … }` |
|
|
233
|
+
| `secure-threat-detected` | `{ fieldName, threatType: 'injection', patternId, tier, timestamp }` — fired when a known injection pattern is detected in the field value |
|
|
222
234
|
|
|
223
235
|
**Example**
|
|
224
236
|
|
|
@@ -327,6 +339,7 @@ el.submit() // programmatic submit (triggers validation + telemetry)
|
|
|
327
339
|
|-------|--------|
|
|
328
340
|
| `secure-form-submit` | `{ formData, formElement, telemetry, preventDefault() }` — cancelable |
|
|
329
341
|
| `secure-form-success` | `{ formData, response, telemetry }` — only when `enhance` is set |
|
|
342
|
+
| `secure-threat-detected` | `{ fieldName, threatType: 'csrf-token-absent', patternId, tier, timestamp }` — fired on `sensitive`/`critical` tiers when CSRF token is absent at submission |
|
|
330
343
|
|
|
331
344
|
**`telemetry` shape** (`SessionTelemetry`):
|
|
332
345
|
|
|
@@ -411,6 +424,7 @@ provider.sign(signals) // Promise<SignedTelemetryEnvelope>
|
|
|
411
424
|
| `pointerType` | Last pointer event type: `mouse` \| `touch` \| `pen` \| `none` |
|
|
412
425
|
| `mouseMovementDetected` | Any `mousemove` event fired during session |
|
|
413
426
|
| `keyboardActivityDetected` | Any `keydown` event fired during session |
|
|
427
|
+
| `threatSignals` | Array of `ThreatDetectedDetail` objects accumulated from all `secure-threat-detected` events during the session; `undefined` when no threats were detected |
|
|
414
428
|
|
|
415
429
|
**How the envelope is injected**
|
|
416
430
|
|
|
@@ -430,6 +444,7 @@ The provider listens for `secure-form-submit` on itself (bubbles from the nested
|
|
|
430
444
|
**Security notes**
|
|
431
445
|
|
|
432
446
|
- The `signing-key` is a *symmetric* secret. For strong guarantees, rotate it per-session via a server nonce endpoint rather than hardcoding it as an attribute.
|
|
447
|
+
- The `CryptoKey` is imported from the `signing-key` attribute once and cached for the lifetime of the component. It is re-imported only when the attribute value changes, and cleared on `disconnectedCallback`. This avoids the cost of re-importing on every submission.
|
|
433
448
|
- All signals are heuristic — a determined attacker can spoof them. The value is raising the cost of scripted attacks.
|
|
434
449
|
- In non-secure contexts (`http://`) `SubtleCrypto` is unavailable; the signature will be an empty string. The server should treat unsigned envelopes with reduced trust.
|
|
435
450
|
|
|
@@ -733,6 +748,57 @@ payButton.addEventListener('click', async () => {
|
|
|
733
748
|
|
|
734
749
|
---
|
|
735
750
|
|
|
751
|
+
### `<secure-password-confirm>`
|
|
752
|
+
|
|
753
|
+
Dual-field password entry with real-time match validation, strength indicator, and injection detection on both the password and confirm inputs. Both fields use `type="password"` with autocomplete disabled at `sensitive`/`critical` tiers.
|
|
754
|
+
|
|
755
|
+
**Attributes**
|
|
756
|
+
|
|
757
|
+
| Attribute | Description |
|
|
758
|
+
|-----------|-------------|
|
|
759
|
+
| `label` | Legend displayed above the field group |
|
|
760
|
+
| `name` | Base name for the hidden form input |
|
|
761
|
+
| `required` | Mark as required |
|
|
762
|
+
| `disabled` | Disable both fields |
|
|
763
|
+
| `security-tier` | Security tier |
|
|
764
|
+
|
|
765
|
+
**Properties & Methods**
|
|
766
|
+
|
|
767
|
+
```js
|
|
768
|
+
const el = document.querySelector('secure-password-confirm');
|
|
769
|
+
|
|
770
|
+
el.valid // true when both fields match and pass validation
|
|
771
|
+
el.name
|
|
772
|
+
el.getPasswordValue() // string — raw password; use only for form handoff
|
|
773
|
+
el.getFieldTelemetry() // composite FieldTelemetry across both inputs
|
|
774
|
+
el.getAuditLog()
|
|
775
|
+
el.clearAuditLog()
|
|
776
|
+
el.focus()
|
|
777
|
+
```
|
|
778
|
+
|
|
779
|
+
**Events**
|
|
780
|
+
|
|
781
|
+
| Event | Detail |
|
|
782
|
+
|-------|--------|
|
|
783
|
+
| `secure-password-match` | `{ name, matched: true }` — fired when both fields contain the same value |
|
|
784
|
+
| `secure-password-mismatch` | `{ name, matched: false }` — fired when the values diverge |
|
|
785
|
+
| `secure-threat-detected` | `{ fieldName, threatType: 'injection', patternId, tier, timestamp }` — fired if an injection pattern is typed into either field |
|
|
786
|
+
|
|
787
|
+
**Form participation**
|
|
788
|
+
|
|
789
|
+
A hidden `<input type="hidden">` is created in the light DOM, kept in sync with the password value, and cleared on `disconnectedCallback`.
|
|
790
|
+
|
|
791
|
+
```html
|
|
792
|
+
<secure-password-confirm
|
|
793
|
+
label="New password"
|
|
794
|
+
name="password"
|
|
795
|
+
required
|
|
796
|
+
security-tier="critical"
|
|
797
|
+
></secure-password-confirm>
|
|
798
|
+
```
|
|
799
|
+
|
|
800
|
+
---
|
|
801
|
+
|
|
736
802
|
### `<secure-submit-button>`
|
|
737
803
|
|
|
738
804
|
Accessible submit button with loading state and automatic form-validity gating.
|
|
@@ -759,6 +825,62 @@ el.getAuditLog()
|
|
|
759
825
|
|
|
760
826
|
---
|
|
761
827
|
|
|
828
|
+
## Injection & CSRF Threat Detection
|
|
829
|
+
|
|
830
|
+
### Injection detection
|
|
831
|
+
|
|
832
|
+
Every `<secure-input>`, `<secure-textarea>`, and `<secure-password-confirm>` scans the raw field value on every `input` event against these patterns:
|
|
833
|
+
|
|
834
|
+
| Pattern ID | What it catches |
|
|
835
|
+
|------------|-----------------|
|
|
836
|
+
| `script-tag` | `<script` tags |
|
|
837
|
+
| `js-protocol` | `javascript:` URIs |
|
|
838
|
+
| `event-handler` | Inline event attributes (`onclick=`, `onload=`, etc.) |
|
|
839
|
+
| `html-injection` | Injected elements: `<img>`, `<svg>`, `<iframe>`, `<object>`, `<embed>`, `<link>`, `<meta>`, `<base>` |
|
|
840
|
+
| `css-expression` | IE-era `expression()` CSS |
|
|
841
|
+
| `vbscript` | `vbscript:` URIs |
|
|
842
|
+
| `data-uri-html` | `data:text/html` payloads |
|
|
843
|
+
| `template-syntax` | `{{...}}` template injection probes |
|
|
844
|
+
|
|
845
|
+
Only the **first** matching pattern fires an event per input event to avoid flooding. The raw value is **never** included in the event detail.
|
|
846
|
+
|
|
847
|
+
```js
|
|
848
|
+
document.addEventListener('secure-threat-detected', (e) => {
|
|
849
|
+
const { fieldName, threatType, patternId, tier, timestamp } = e.detail;
|
|
850
|
+
// threatType === 'injection'
|
|
851
|
+
// patternId === 'script-tag' | 'js-protocol' | ...
|
|
852
|
+
myFraudPipeline.report({ fieldName, patternId, tier });
|
|
853
|
+
});
|
|
854
|
+
```
|
|
855
|
+
|
|
856
|
+
### CSRF threat detection
|
|
857
|
+
|
|
858
|
+
`<secure-form>` fires `secure-threat-detected` at submission time when the form is `sensitive` or `critical` tier and no CSRF token value is present. This is a defence-in-depth signal — the request is still blocked by missing CSRF validation server-side, but the event lets client-side monitoring react immediately.
|
|
859
|
+
|
|
860
|
+
```js
|
|
861
|
+
form.addEventListener('secure-threat-detected', (e) => {
|
|
862
|
+
if (e.detail.threatType === 'csrf-token-absent') {
|
|
863
|
+
console.warn('Submission attempted without CSRF token', e.detail);
|
|
864
|
+
}
|
|
865
|
+
});
|
|
866
|
+
```
|
|
867
|
+
|
|
868
|
+
### `ThreatDetectedDetail` shape
|
|
869
|
+
|
|
870
|
+
```ts
|
|
871
|
+
{
|
|
872
|
+
fieldName: string; // name attribute of the originating field
|
|
873
|
+
threatType: 'injection' | 'csrf-token-absent';
|
|
874
|
+
patternId: string; // e.g. 'script-tag', 'csrf-token-absent'
|
|
875
|
+
tier: 'public' | 'authenticated' | 'sensitive' | 'critical';
|
|
876
|
+
timestamp: number; // Unix ms — raw value intentionally absent
|
|
877
|
+
}
|
|
878
|
+
```
|
|
879
|
+
|
|
880
|
+
All threat signals detected during a session are collected by `<secure-telemetry-provider>` into `threatSignals` on the signed envelope, so the server receives the full picture in a single request.
|
|
881
|
+
|
|
882
|
+
---
|
|
883
|
+
|
|
762
884
|
## Common Attributes
|
|
763
885
|
|
|
764
886
|
All field components support:
|
|
@@ -816,6 +938,7 @@ el.blur()
|
|
|
816
938
|
| `secure-form-success` | `<secure-form>` | `{ formData, response, telemetry }` |
|
|
817
939
|
| `secure-card` | `<secure-card>` | `{ name, cardType, last4, expiryMonth, expiryYear, cardholderName, valid, tier }` |
|
|
818
940
|
| `secure-audit` | all components | `{ event, tier, timestamp, … }` |
|
|
941
|
+
| `secure-threat-detected` | `<secure-input>`, `<secure-textarea>`, `<secure-password-confirm>`, `<secure-form>` | `{ fieldName, threatType, patternId, tier, timestamp }` — injection or CSRF threat detected |
|
|
819
942
|
| `table-action` | `<secure-table>` | `{ action, row }` |
|
|
820
943
|
|
|
821
944
|
---
|
|
@@ -873,6 +996,7 @@ import 'secure-ui-components/secure-file-upload';
|
|
|
873
996
|
import 'secure-ui-components/secure-datetime';
|
|
874
997
|
import 'secure-ui-components/secure-table';
|
|
875
998
|
import 'secure-ui-components/secure-card';
|
|
999
|
+
import 'secure-ui-components/secure-password-confirm';
|
|
876
1000
|
import 'secure-ui-components/secure-telemetry-provider';
|
|
877
1001
|
```
|
|
878
1002
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secure-form.d.ts","sourceRoot":"","sources":["../../../src/components/secure-form/secure-form.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAGH,OAAO,KAAK,EACV,iBAAiB,
|
|
1
|
+
{"version":3,"file":"secure-form.d.ts","sourceRoot":"","sources":["../../../src/components/secure-form/secure-form.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAGH,OAAO,KAAK,EACV,iBAAiB,EAKlB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;;GAYG;AACH,qBAAa,UAAW,SAAQ,WAAW;;IACzC,wEAAwE;IACxE,MAAM,CAAC,aAAa,EAAE,OAAO,CAAS;IA6CtC;;;;OAIG;IACH,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAWxC;IAED;;OAEG;;IAMH;;;;;;;;OAQG;IACH,iBAAiB,IAAI,IAAI;IAsrBzB;;;;OAIG;IACH,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIjC;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAWb;;;;OAIG;IACH,MAAM,IAAI,IAAI;IAOd;;;;OAIG;IACH,IAAI,KAAK,IAAI,OAAO,CAGnB;IAED;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAO5B;;OAEG;IACH,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAqB/F;;OAEG;IACH,IAAI,YAAY,IAAI,iBAAiB,CAEpC;IAED;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOpC;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM1D;;OAEG;IACH,cAAc,IAAI;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;CAG3D;AAKD,eAAe,UAAU,CAAC"}
|
|
@@ -310,6 +310,21 @@ export class SecureForm extends HTMLElement {
|
|
|
310
310
|
event.preventDefault();
|
|
311
311
|
return;
|
|
312
312
|
}
|
|
313
|
+
// Detect absent CSRF token on sensitive/critical tiers at submission time
|
|
314
|
+
if ((this.#securityTier === SecurityTier.SENSITIVE || this.#securityTier === SecurityTier.CRITICAL) &&
|
|
315
|
+
!this.#csrfInput?.value) {
|
|
316
|
+
this.dispatchEvent(new CustomEvent('secure-threat-detected', {
|
|
317
|
+
detail: {
|
|
318
|
+
fieldName: this.#instanceId,
|
|
319
|
+
threatType: 'csrf-token-absent',
|
|
320
|
+
patternId: 'csrf-token-absent',
|
|
321
|
+
tier: this.#securityTier,
|
|
322
|
+
timestamp: Date.now(),
|
|
323
|
+
},
|
|
324
|
+
bubbles: true,
|
|
325
|
+
composed: true,
|
|
326
|
+
}));
|
|
327
|
+
}
|
|
313
328
|
// Check rate limit
|
|
314
329
|
const rateLimitCheck = this.checkRateLimit();
|
|
315
330
|
if (!rateLimitCheck.allowed) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secure-form.js","sourceRoot":"","sources":["../../../src/components/secure-form/secure-form.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"secure-form.js","sourceRoot":"","sources":["../../../src/components/secure-form/secure-form.ts"],"names":[],"mappings":"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"}
|
|
@@ -121,11 +121,77 @@ label {
|
|
|
121
121
|
|
|
122
122
|
@media (prefers-reduced-motion: reduce) {
|
|
123
123
|
.input-field,
|
|
124
|
-
.error-container
|
|
124
|
+
.error-container,
|
|
125
|
+
.threat-container {
|
|
125
126
|
transition: none !important;
|
|
126
127
|
}
|
|
127
128
|
}
|
|
128
129
|
|
|
130
|
+
/* Threat Feedback Container */
|
|
131
|
+
.threat-container {
|
|
132
|
+
margin-top: var(--secure-ui-form-error-margin-top);
|
|
133
|
+
font-size: var(--secure-ui-error-font-size);
|
|
134
|
+
color: var(--secure-ui-color-warning);
|
|
135
|
+
line-height: var(--secure-ui-line-height-normal);
|
|
136
|
+
overflow: hidden;
|
|
137
|
+
max-height: 40px;
|
|
138
|
+
opacity: 1;
|
|
139
|
+
transform: translateY(0);
|
|
140
|
+
transition: all 0.5s ease-in-out;
|
|
141
|
+
display: flex;
|
|
142
|
+
align-items: center;
|
|
143
|
+
gap: var(--secure-ui-space-1, 4px);
|
|
144
|
+
flex-wrap: wrap;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.threat-container.hidden {
|
|
148
|
+
max-height: 0;
|
|
149
|
+
opacity: 0;
|
|
150
|
+
transform: translateY(-4px);
|
|
151
|
+
margin-top: 0;
|
|
152
|
+
transition: all 0.2s ease-in-out;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.threat-message {
|
|
156
|
+
flex: 1;
|
|
157
|
+
min-width: 0;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.threat-badge {
|
|
161
|
+
display: inline-block;
|
|
162
|
+
padding: var(--secure-ui-badge-padding);
|
|
163
|
+
font-size: var(--secure-ui-badge-font-size);
|
|
164
|
+
font-weight: var(--secure-ui-font-weight-semibold);
|
|
165
|
+
border-radius: var(--secure-ui-badge-border-radius);
|
|
166
|
+
background-color: color-mix(in srgb, var(--secure-ui-color-warning) 12%, transparent);
|
|
167
|
+
color: var(--secure-ui-color-warning);
|
|
168
|
+
border: var(--secure-ui-border-width-thin) solid currentColor;
|
|
169
|
+
font-family: var(--secure-ui-font-family-mono, monospace);
|
|
170
|
+
white-space: nowrap;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.threat-tier {
|
|
174
|
+
display: inline-block;
|
|
175
|
+
padding: var(--secure-ui-badge-padding);
|
|
176
|
+
font-size: var(--secure-ui-badge-font-size);
|
|
177
|
+
font-weight: var(--secure-ui-font-weight-semibold);
|
|
178
|
+
border-radius: var(--secure-ui-badge-border-radius);
|
|
179
|
+
background-color: var(--secure-ui-color-bg-tertiary);
|
|
180
|
+
color: var(--secure-ui-color-text-secondary);
|
|
181
|
+
border: var(--secure-ui-border-width-thin) solid var(--secure-ui-color-border);
|
|
182
|
+
text-transform: uppercase;
|
|
183
|
+
white-space: nowrap;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/* Threat state on the input field */
|
|
187
|
+
.input-field.threat {
|
|
188
|
+
border-color: var(--secure-ui-color-warning) !important;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.input-field.threat:focus {
|
|
192
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--secure-ui-color-warning) 25%, transparent);
|
|
193
|
+
}
|
|
194
|
+
|
|
129
195
|
/* Security Tier-Specific Styles */
|
|
130
196
|
/* :host([security-tier="public"]) .input-field {
|
|
131
197
|
border-color: var(--secure-ui-tier-public);
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
* @license MIT
|
|
30
30
|
*/
|
|
31
31
|
import { SecureBaseComponent } from '../../core/base-component.js';
|
|
32
|
+
import type { SecurityTierValue } from '../../core/types.js';
|
|
32
33
|
/**
|
|
33
34
|
* Secure Input Web Component
|
|
34
35
|
*
|
|
@@ -105,6 +106,19 @@ export declare class SecureInput extends SecureBaseComponent {
|
|
|
105
106
|
* @public
|
|
106
107
|
*/
|
|
107
108
|
blur(): void;
|
|
109
|
+
/**
|
|
110
|
+
* Show inline threat feedback inside the component's shadow DOM.
|
|
111
|
+
* Called by the base class when a threat is detected and threat-feedback is set.
|
|
112
|
+
* Uses a separate container from validation errors so #clearErrors() does not
|
|
113
|
+
* clobber an active threat message.
|
|
114
|
+
* @protected
|
|
115
|
+
*/
|
|
116
|
+
protected showThreatFeedback(patternId: string, tier: SecurityTierValue): void;
|
|
117
|
+
/**
|
|
118
|
+
* Clear the threat feedback container.
|
|
119
|
+
* @protected
|
|
120
|
+
*/
|
|
121
|
+
protected clearThreatFeedback(): void;
|
|
108
122
|
/**
|
|
109
123
|
* Cleanup on disconnect
|
|
110
124
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secure-input.d.ts","sourceRoot":"","sources":["../../../src/components/secure-input/secure-input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"secure-input.d.ts","sourceRoot":"","sources":["../../../src/components/secure-input/secure-input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;;;;;;;GAQG;AACH,qBAAa,WAAY,SAAQ,mBAAmB;;IAkDlD;;;;OAIG;IACH,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAcxC;IAED;;OAEG;;IAKH;;;;;;;;OAQG;IACH,SAAS,CAAC,MAAM,IAAI,gBAAgB,GAAG,WAAW,GAAG,IAAI;IA6oBzD;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAkBtG;;;;;;;OAOG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;;;OAIG;IACH,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAEtB;IAED;;;;OAIG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACH,IAAI,KAAK,IAAI,OAAO,CAyDnB;IAED;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAMb;;;;OAIG;IACH,IAAI,IAAI,IAAI;IAMZ;;;;;;OAMG;cACgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI;IA8BvF;;;OAGG;cACgB,mBAAmB,IAAI,IAAI;IAY9C;;OAEG;IACH,oBAAoB,IAAI,IAAI;CAS7B;AAKD,eAAe,WAAW,CAAC"}
|
|
@@ -55,6 +55,12 @@ export class SecureInput extends SecureBaseComponent {
|
|
|
55
55
|
* @private
|
|
56
56
|
*/
|
|
57
57
|
#errorContainer = null;
|
|
58
|
+
/**
|
|
59
|
+
* Threat feedback container — separate from validation errors so
|
|
60
|
+
* #clearErrors() never clobbers an active threat message.
|
|
61
|
+
* @private
|
|
62
|
+
*/
|
|
63
|
+
#threatContainer = null;
|
|
58
64
|
/**
|
|
59
65
|
* The actual unmasked value
|
|
60
66
|
* @private
|
|
@@ -147,6 +153,15 @@ export class SecureInput extends SecureBaseComponent {
|
|
|
147
153
|
this.#errorContainer.setAttribute('part', 'error');
|
|
148
154
|
this.#errorContainer.id = `${this.#instanceId}-error`;
|
|
149
155
|
container.appendChild(this.#errorContainer);
|
|
156
|
+
// Threat feedback container — only rendered visibly when threat-feedback attribute
|
|
157
|
+
// is present and detectInjection() fires. Kept separate from #errorContainer so
|
|
158
|
+
// #clearErrors() (called on every input event) never clobbers a threat message.
|
|
159
|
+
this.#threatContainer = document.createElement('div');
|
|
160
|
+
this.#threatContainer.className = 'threat-container hidden';
|
|
161
|
+
this.#threatContainer.setAttribute('role', 'alert');
|
|
162
|
+
this.#threatContainer.setAttribute('part', 'threat');
|
|
163
|
+
this.#threatContainer.id = `${this.#instanceId}-threat`;
|
|
164
|
+
container.appendChild(this.#threatContainer);
|
|
150
165
|
// CRITICAL: Create hidden input in light DOM for native form submission
|
|
151
166
|
// The actual input is in Shadow DOM and can't participate in form submission
|
|
152
167
|
this.#createHiddenInputForForm();
|
|
@@ -432,6 +447,7 @@ export class SecureInput extends SecureBaseComponent {
|
|
|
432
447
|
// For non-masked inputs, just read the value normally
|
|
433
448
|
this.#actualValue = this.#inputElement.value;
|
|
434
449
|
}
|
|
450
|
+
this.detectInjection(this.#actualValue, this.#inputElement.name);
|
|
435
451
|
// Clear previous errors on input (improve UX)
|
|
436
452
|
this.#clearErrors();
|
|
437
453
|
// Sync hidden input for form submission
|
|
@@ -815,6 +831,53 @@ export class SecureInput extends SecureBaseComponent {
|
|
|
815
831
|
this.#inputElement.blur();
|
|
816
832
|
}
|
|
817
833
|
}
|
|
834
|
+
/**
|
|
835
|
+
* Show inline threat feedback inside the component's shadow DOM.
|
|
836
|
+
* Called by the base class when a threat is detected and threat-feedback is set.
|
|
837
|
+
* Uses a separate container from validation errors so #clearErrors() does not
|
|
838
|
+
* clobber an active threat message.
|
|
839
|
+
* @protected
|
|
840
|
+
*/
|
|
841
|
+
showThreatFeedback(patternId, tier) {
|
|
842
|
+
if (!this.#threatContainer || !this.#inputElement)
|
|
843
|
+
return;
|
|
844
|
+
// Build content with DOM methods — CSP-safe, no innerHTML
|
|
845
|
+
this.#threatContainer.textContent = '';
|
|
846
|
+
const msg = document.createElement('span');
|
|
847
|
+
msg.className = 'threat-message';
|
|
848
|
+
msg.textContent = this.getThreatLabel(patternId);
|
|
849
|
+
const patternBadge = document.createElement('span');
|
|
850
|
+
patternBadge.className = 'threat-badge';
|
|
851
|
+
patternBadge.textContent = patternId;
|
|
852
|
+
const tierBadge = document.createElement('span');
|
|
853
|
+
tierBadge.className = `threat-tier threat-tier--${tier}`;
|
|
854
|
+
tierBadge.textContent = tier;
|
|
855
|
+
this.#threatContainer.appendChild(msg);
|
|
856
|
+
this.#threatContainer.appendChild(patternBadge);
|
|
857
|
+
this.#threatContainer.appendChild(tierBadge);
|
|
858
|
+
// Force reflow so the browser registers the hidden state before removing it,
|
|
859
|
+
// ensuring the CSS transition fires correctly.
|
|
860
|
+
void this.#threatContainer.offsetHeight;
|
|
861
|
+
this.#threatContainer.classList.remove('hidden');
|
|
862
|
+
this.#inputElement.classList.add('threat');
|
|
863
|
+
this.#inputElement.setAttribute('aria-invalid', 'true');
|
|
864
|
+
}
|
|
865
|
+
/**
|
|
866
|
+
* Clear the threat feedback container.
|
|
867
|
+
* @protected
|
|
868
|
+
*/
|
|
869
|
+
clearThreatFeedback() {
|
|
870
|
+
if (!this.#threatContainer || !this.#inputElement)
|
|
871
|
+
return;
|
|
872
|
+
this.#threatContainer.classList.add('hidden');
|
|
873
|
+
this.#threatContainer.addEventListener('transitionend', () => {
|
|
874
|
+
if (this.#threatContainer.classList.contains('hidden')) {
|
|
875
|
+
this.#threatContainer.textContent = '';
|
|
876
|
+
}
|
|
877
|
+
}, { once: true });
|
|
878
|
+
this.#inputElement.classList.remove('threat');
|
|
879
|
+
this.#inputElement.removeAttribute('aria-invalid');
|
|
880
|
+
}
|
|
818
881
|
/**
|
|
819
882
|
* Cleanup on disconnect
|
|
820
883
|
*/
|