fix(submissions): enforce https-only submitted source links#544
fix(submissions): enforce https-only submitted source links#544JSONbored wants to merge 2 commits into
Conversation
|
Warning Review limit reached
More reviews will be available in 1 minute and 9 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Repository UI (base), Organization UI (inherited) Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches✨ Simplify code
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Motivation
sourceUrlvalues as clickable links and the UI allowedhttp:destinations despite validation enforcing HTTPS-only contributor URLs, creating a policy mismatch and increasing click-through MITM/phishing risk.Description
safeHttpsUrlhelper that only acceptshttps:URLs and returns an empty string for non-HTTPS or malformed values.safeHttpsUrl(entry.sourceUrl)for the maintainer “Open submitted source” link so only validatedhttps://sources are rendered as clickable links.safeHttpUrlhelper for other auxiliary URL rendering and preserve fallback/invalid-URL behavior.Testing
pnpm exec vitest run tests/submission-intake.test.ts -t "rejects malformed or non-https contributor URLs" --reporter=dot, which passed (1 passed, 56 skipped).Codex Task