Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[draft] ICP Dev Docs Restructure, Overhaul & Audit #3970

Open
wants to merge 41 commits into
base: master
Choose a base branch
from

Conversation

jessiemongeon1
Copy link
Collaborator

This PR restructures the ICP Dev Docs and makes several significant changes:

  • Created new documentation categories and top navigation bar sections.
  • Renamed all documentation files to reflect new categories and sections.
  • Removed several pages that will be migrated to new ICP Learn Hub website.
  • Updated and audited all links across all docs pages, internal and external.
  • If a code example used in the docs was originally sourced from the dfinity/examples repo, the code is now referencing the dfinity/examples repo file through a submodule rather than being duplicated in the documentation page.
  • Audited every docs page for spelling, grammar, and formatting.
  • Applied several style guide revisions for consistency in use of hyphens, terminology, capitalization, etc.
  • Increased Docs Sidebar by 50px to better display long titles.
  • Fixed bug where single pages rendered as bold text on the sidebar.

@jessiemongeon1 jessiemongeon1 requested review from a team as code owners January 22, 2025 19:05
@github-actions github-actions bot added the documentation Changes to Developer Docs label Jan 22, 2025
Copy link

github-actions bot commented Jan 22, 2025

🤖 Here's your preview: https://3w7gq-qiaaa-aaaam-abcea-cai.icp0.io

.github/CODEOWNERS Outdated Show resolved Hide resolved

Conditions 1, 2 and 3 can be satisfied by convincing the user to initiate an authentication flow with a session public key which is chosen by the attacker by loading the proxy from an attacker controlled mobile or web application. Concretely, an attacker would execute a phishing attack where a victim is directed to the proxy from an unsuspicious application. For example, the victim is convinced that the attacker is issuing an airdrop. The victim has to download a corresponding malicious mobile app that requires II authentication. This malicious mobile app would load the proxy (step 3) similarly to how the legitimate mobile app would. The malicious app would ask the proxy to authenticate the user for an attacker chosen session key. The victim might not realize they are completing an authorization flow for a different dapp origin. Condition 2 is met for any dapp that exposes such an open II authentication proxy on their domain.
Conditions 1, 2, and 3 can be satisfied by convincing the user to initiate an authentication flow with a session public key that is chosen by the attacker by loading the proxy from an attacker-controlled mobile or web application. Concretely, an attacker would execute a phishing attack where a victim is directed to the proxy from an unsuspicious application. For example, the victim is convinced that the attacker is issuing an airdrop. The victim has to download a corresponding malicious mobile app that requires II authentication. This malicious mobile app would load the proxy (step 3) similarly to how the legitimate mobile app would. The malicious app would ask the proxy to authenticate the user for an Condition 2 is met for any dapp that exposes such an open II authentication proxy on their domain. session key. The victim might not realize they are completing an authorization flow for a different dapp origin. Condition 2 is met for any dapp that exposes such an open II authentication proxy on their domain.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Condition 2 is met for any dapp that exposes such an open II authentication proxy on their domain. duplicated

This page discusses ICP's ingress message APIs. While these APIs are defined in detail within the [HTTPS interface specification](/docs/current/references/ic-interface-spec#http-interface), this page provides a more high-level and intuitive overview, with a special focus on error handling. That aspect is particularly important, as it can be tricky to determine if an ingress message has actually been successfully executed. Misinterpreting errors could lead to bugs such as double spending.
See also the introductory [call overview](/docs/current/building-dapps/calling-dapps/query-calls) to learn more about calling canisters.

This page discusses ICP's ingress message APIs. While these APIs are defined in detail within the [HTTPS interface specification](/docs/current/references/ic-interface-spec#http-interface), this page provides a more high-level and intuitive with a special focus on error handling. That aspect is particularly important, as it can be tricky to determine if an ingress message has actually been successfully executed. Misinterpreting errors could lead to bugs such as double spending.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high-level and intuitive overview

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Changes to Developer Docs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants