data-fetching-patterns
Explains various data fetching strategies to optimize loading performance and enhance user experience in applications.
Install this skill
Security score
The data-fetching-patterns skill was audited on Feb 27, 2026 and we found 24 security issues across 2 threat categories, including 6 high-severity. Review the findings below before installing.
Categories Tested
Security Issues
Template literal with variable interpolation in command context
| 654 | fetch(`/api/search?q=${query}`) |
Template literal with variable interpolation in command context
| 677 | fetch(`/api/search?q=${query}`, { signal: controller.signal }) |
Template literal with variable interpolation in command context
| 697 | queryFn: () => fetch(`/api/search?q=${query}`).then(r => r.json()), |
Template literal with variable interpolation in command context
| 1094 | const key = `${options?.method || 'GET'}:${url}`; |
Template literal with variable interpolation in command context
| 1240 | () => fetch(`/api/users/${userId}`).then(r => r.json()) |
Template literal with variable interpolation in command context
| 1495 | await revalidatePath(`/${type}/${id}`); |
Fetch to external URL
| 222 | // Component A: fetch('/api/user') |
Fetch to external URL
| 223 | // Component B: fetch('/api/user') |
Fetch to external URL
| 429 | fetch('/api/users/full-profile') // 50 fields |
Fetch to external URL
| 435 | fetch('/api/users/summary') // 3 fields |
Fetch to external URL
| 544 | fetch('/api/user').then(r => r.json()).then(setUser); |
Fetch to external URL
| 552 | fetch('/api/user').then(r => r.json()).then(setUser); // SAME REQUEST! |
Fetch to external URL
| 560 | fetch('/api/user').then(r => r.json()).then(setUser); // SAME REQUEST! |
Fetch to external URL
| 878 | const user = await fetch('/api/users/123'); |
Fetch to external URL
| 879 | const posts = await fetch('/api/users/123/posts'); |
Fetch to external URL
| 880 | const comments = await fetch('/api/users/123/posts/comments/count'); |
Fetch to external URL
| 932 | await fetch('/api/data'); |
Fetch to external URL
| 947 | const response = await fetch('/api/data'); |
Fetch to external URL
| 1021 | const data1 = await dedupedFetch('user', () => fetch('/api/user')); |
Fetch to external URL
| 1022 | const data2 = await dedupedFetch('user', () => fetch('/api/user')); |
Webhook reference - potential data exfiltration
| 1483 | // Webhook-based invalidation (for ISR) |
Webhook reference - potential data exfiltration
| 1484 | async function handleRevalidationWebhook(request) { |
Webhook reference - potential data exfiltration
| 1487 | // Verify webhook signature |
Webhook reference - potential data exfiltration
| 1488 | const signature = request.headers.get('x-webhook-signature'); |