Add 21 files, update 16 files, rename 1 file
This commit is contained in:
1 parent
b9e4ed4dfc
commit
278293b397
39 files changed
+2434
-61
No files matched your search
@@ -0,0 +1,27 @@
|
||||
import { describe, expect, test } from 'bun:test';
|
||||
import { isCsrfProtectedRequest, isTrustedRequestOrigin } from './csrf';
|
||||
|
||||
describe('CSRF origin protection', () => {
|
||||
test('allows safe methods without origin headers', () => {
|
||||
const request = new Request('https://school.example/api/students');
|
||||
expect(isCsrfProtectedRequest(request)).toBeFalse();
|
||||
expect(isTrustedRequestOrigin(request)).toBeTrue();
|
||||
});
|
||||
|
||||
test('allows mutations from the request origin', () => {
|
||||
const request = new Request('https://school.example/api/students', {
|
||||
method: 'POST',
|
||||
headers: { origin: 'https://school.example' },
|
||||
});
|
||||
expect(isCsrfProtectedRequest(request)).toBeTrue();
|
||||
expect(isTrustedRequestOrigin(request)).toBeTrue();
|
||||
});
|
||||
|
||||
test('rejects cross-origin mutation requests', () => {
|
||||
const request = new Request('https://school.example/api/students', {
|
||||
method: 'DELETE',
|
||||
headers: { origin: 'https://attacker.example' },
|
||||
});
|
||||
expect(isTrustedRequestOrigin(request)).toBeFalse();
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user