OWASP / OWASP/OpenCRE

Shareable CRE URLs stay the full graph; filter is session-only

Open
#1,084 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement not ready for development P2 untriaged
Dominant language
Python
Stars
180
Forks
137
Avg merge
3d 23h
Merged PRs (30d)
21

Description

Parent: #1079 · Pair with CRE-page apply-view ticket · Project: https://github.com/orgs/OWASP/projects/60

What

Public and shared links must not inherit a logged-in user’s profile.

https://www.opencre.org/cre/663-200 is a canonical node. Copy-paste from a filtered session must not surprise the recipient with a truncated graph, and crawlers/API clients must keep seeing the full node unless they explicitly ask.

Contract

  • Anonymous GET /rest/v1/id/{id} (and HTML /cre/{id} with no session) returns the full graph
  • Filtering is session-scoped (logged-in default view) or an explicit query (applyFilters / include_only / all=true)
  • “Copy link” / share from a filtered CRE page either copies the canonical unfiltered URL, or copies an explicit filtered URL — pick one and document it in the UI
  • Tests: anonymous full; logged-in filtered does not change the unauthenticated response for the same path

Why a separate ticket

Easy to implement the CRE-page filter by rewriting every /cre/… navigation to ?filters=…, which then leaks into Slack, GitHub, and AIX reference sections. Call that out in the CRE-page PR; this ticket owns the contract and tests.

Success

A colleague opening a pasted /cre/663-200 sees the same full node whether or not the sender had a profile filter on.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the anonymous GET /rest/v1/id/{id} and HTML /cre/{id} entry points, then compare them with the logged-in filtered behavior. Add or update tests for anonymous full results and for filtered sessions not changing the unauthenticated response. Done means shared canonical links show the full node, while explicit filtering remains scoped or documented in the copy-link UI.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend, security
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.