From 826f97cd48ef94f4600081c4cc2baf98c8a8d84b Mon Sep 17 00:00:00 2001 From: Karl <5254025+karwa@users.noreply.github.com> Date: Thu, 20 Jan 2022 20:19:25 +0100 Subject: [PATCH] Update README --- README.md | 171 +++++++++++------- abusing-url-parsers-example-orange-tsai-2.png | Bin 0 -> 34503 bytes abusing-url-parsers-example-orange-tsai.png | Bin 0 -> 44363 bytes 3 files changed, 108 insertions(+), 63 deletions(-) create mode 100644 abusing-url-parsers-example-orange-tsai-2.png create mode 100644 abusing-url-parsers-example-orange-tsai.png diff --git a/README.md b/README.md index 0d6466063..6d1ccbc68 100644 --- a/README.md +++ b/README.md @@ -1,51 +1,48 @@ -# WebURL +# **WebURL** + +[![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fkarwa%2Fswift-url%2Fbadge%3Ftype%3Dswift-versions)](https://swiftpackageindex.com/karwa/swift-url) +[![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fkarwa%2Fswift-url%2Fbadge%3Ftype%3Dplatforms)](https://swiftpackageindex.com/karwa/swift-url) A new URL type for Swift. -- **Compliant** with the [URL Living Standard](https://url.spec.whatwg.org/) for web compatibility. WebURL matches modern browsers and popular libraries in other languages. +- ๐ŸŒ **Compliant** with the [latest URL Standard](https://url.spec.whatwg.org/). WebURL matches how modern browsers interpret URLs. -- **Fast**. Tuned for high performance and low memory use. - -- **Swifty**. The API makes liberal use of generics, in-place mutation, zero-cost abstractions, and other Swift features. It's a big step up from Foundation's `URL`. +- โšก๏ธ **Fast**. Tuned for high performance and low memory use. -- **Portable**. The core WebURL library has no dependencies other than the Swift standard library. +- ๐Ÿญ **Swifty**. The API makes liberal use of generics, in-place mutation, zero-cost abstractions, and other Swift features. It's a big step up from Foundation's `URL`. -- **Memory-safe**. WebURL uses carefully tuned bounds-checking techniques which the compiler is better able to reason about. +- ๐Ÿงณ **Portable**. The core WebURL library has no dependencies other than the Swift standard library, and no platform-specific behavior. -And of course, it's written in **100% Swift**. +- ๐Ÿฅฝ **Memory-safe**. WebURL uses carefully tuned bounds-checking techniques so it can be both fast _and_ safe. -> [**NEW**] The documentation has been entirely rewritten for DocC! -> It's hard to overstate what an enormous improvement it is - just check it out for yourself! +_(and of course, it's written in **100% Swift**)_. -The [Documentation](https://karwa.github.io/swift-url/main/documentation/weburl/) is the best place to learn about WebURL. - -Note: The documentation at `/main/documentation/weburl` is built from the `main` branch, but you can also visit the stable documentation for a specific version (e.g. `/0.2.1/documentation/weburl`). +๐Ÿ“š Check out the [Documentation](https://karwa.github.io/swift-url/main/documentation/weburl/) to learn more ๐Ÿ“š +
+
# Using WebURL in your project To use this package in a SwiftPM project, you need to set it up as a package dependency: ```swift -// swift-tools-version:5.3 -import PackageDescription - -let package = Package( - name: "MyPackage", - dependencies: [ - .package( - url: "https://github.com/karwa/swift-url", - .upToNextMajor(from: "0.2.0") // or `.upToNextMinor` - ) - ], - targets: [ - .target( - name: "MyTarget", - dependencies: [ - .product(name: "WebURL", package: "swift-url") - ] - ) - ] -) +// Add the package as a dependency. +dependencies: [ + .package( + url: "https://github.com/karwa/swift-url", + .upToNextMinor(from: "0.3.0") + ) +] + +// Then add the WebURL library as a target dependency. +targets: [ + .target( + name: "", + dependencies: [ + .product(name: "WebURL", package: "swift-url") + ] + ) +] ``` And with that, you're ready to start using `WebURL`: @@ -63,25 +60,66 @@ url.pathComponents += ["apple", "swift"] url // "https://github.com/apple/swift" ``` -Visit [the documentation](https://karwa.github.io/swift-url/main/documentation/weburl/weburl/) for an overview of what you can do with `WebURL`. +๐Ÿ“š Check out the [Documentation](https://karwa.github.io/swift-url/main/documentation/weburl/) to learn about WebURL's API ๐Ÿ“š +
+
+ +## ๐Ÿ”— Integration with Foundation + +WebURL 0.3.0 includes a library called `WebURLFoundationExtras`, which allows you to construct a `WebURL` from a Foundation `URL` value. To use it, add it to your target dependencies and import the module. + +```swift +targets: [ + .target( + name: "", + dependencies: [ + .product(name: "WebURL", package: "swift-url"), + // ๐Ÿ‘‡ Add this line ๐Ÿ‘‡ + .product(name: "WebURLFoundationExtras", package: "swift-url") + ] + ) +] +``` + +Now you're able to accept URLs using a `Foundation.URL` value while taking advantage of WebURL's web-compatible normalization and fantastic API. Note that this can fail, because Foundation is quite loose about what it accepts as a "URL" and some ambiguous values aren't considered valid by the latest standard, but the things you expect to work will work :) + +```swift +import Foundation +import WebURL +import WebURLFoundationExtras + +public func processURL(_ url: Foundation.URL) throws { + guard let webURL = WebURL(url) else { + throw InvalidURLError() + } + // Continue processing using WebURL. +} +``` + +WebURL -> Foundation.URL conversion will be coming in a later version. +
+
-## Integration with swift-system +## ๐Ÿ”— Integration with swift-system -WebURL 0.2.0 includes a library called `WebURLSystemExtras`, which integrates with `swift-system` and Apple's `System.framework`. This allows you to create `file:` URLs from `FilePath`s, and to create `FilePath`s from `file:` URLs. It supports both POSIX and Windows paths. +WebURL 0.2.0 includes a library called `WebURLSystemExtras`, which integrates with `swift-system` and Apple's `System.framework` and allows you to create `file:` URLs from `FilePath`s and vice versa. It has excellent support for both POSIX and Windows paths. Again, to use it, add the target dependency and import the module. ```swift .target( - name: "MyTarget", + name: "", dependencies: [ .product(name: "WebURL", package: "swift-url"), - .product(name: "WebURLSystemExtras", package: "swift-url") // <--- Add this. + // ๐Ÿ‘‡ Add this line ๐Ÿ‘‡ + .product(name: "WebURLSystemExtras", package: "swift-url") ] ) ``` +And you're good to go! + ```swift -import WebURL import System +import WebURL import WebURLSystemExtras func openFile(at url: WebURL) throws -> FileDescriptor { @@ -89,10 +127,11 @@ func openFile(at url: WebURL) throws -> FileDescriptor { return try FileDescriptor.open(path, .readOnly) } ``` +
-## Prototype port of async-http-client +## ๐Ÿงช async-http-client Port -We have a prototype port of [async-http-client](https://github.com/karwa/async-http-client), based on version 1.7.0 (the latest release as of writing), which uses WebURL for _all_ of its URL handling. It allows you to perform http(s) requests with WebURL, including support for HTTP/2, and is a useful demonstration of how to adopt WebURL in your library. +We have a prototype port of [async-http-client](https://github.com/karwa/async-http-client) which uses WebURL for _all_ of its internal URL handling. If you're using AHC in your server, check it out to take advantage of the latest URL standard and WebURL's improved API. By default, it takes advantage of WebURL's Foundation integration so you can make requests using either type, but it can also be built without any Foundation dependency at all - meaning smaller binaries and faster startup times. It's also a great demonstration of how to adopt WebURL in your library. We'll be updating the port periodically, so if you wish to use it in an application we recommend making a fork and pulling in changes as you need. @@ -112,19 +151,20 @@ func getTextFile(url: WebURL) throws -> EventLoopFuture { let url = WebURL("https://github.com/karwa/swift-url/raw/main/README.md")! try getTextFile(url: url).wait() // "# WebURL A new URL type for Swift..." ``` +
-# Project Status +# ๐Ÿ“ฐ Project Status -WebURL is a complete URL library, implementing the latest version of the URL Standard (as of writing, that is the August 2021 review draft). It is tested against the [shared `web-platform-tests`](https://github.com/web-platform-tests/wpt/) used by major browsers, and passes all constructor and setter tests other than those which rely on IDNA. The library includes a comprehensive set of APIs for working with URLs: getting/setting basic components, percent-encoding/decoding, reading and writing path components, form parameters, file paths, etc. Each has their own extensive sets of tests in addition to the shared web-platform-tests. +WebURL is a complete URL library, implementing the latest version of the URL Standard (as of writing, that is commit `f787850`). It currently does not support Internationalized Domain Names (IDNA), but that support is planned. -The project is regularly benchmarked using the suite available in the `Benchmarks` directory and fuzz-tested using the fuzzers available in the `Fuzzers` directory. +It is tested against the [shared `web-platform-tests`](https://github.com/web-platform-tests/wpt/) used by major browsers, and passes all constructor and setter tests (other than those which require IDNA). The library includes a comprehensive set of APIs for working with URLs: getting/setting components, percent-encoding/decoding, reading and writing path components, form parameters, file paths, etc. Each has their own extensive sets of tests in addition to the shared web-platform-tests. The project is regularly benchmarked and fuzz-tested. The benchmark and fuzz-testing suite are available in the `Benchmarks` and `Fuzzers` directories respectively. Being a pre-1.0 package, the interfaces have not had time to stabilize. If there's anything you think could be improved, your feedback is welcome - either open a GitHub issue or post to the [Swift forums](https://forums.swift.org/c/related-projects/weburl/73). Prior to 1.0, it may be necessary to make source-breaking changes. I'll do my best to keep these to a minimum, and any such changes will be accompanied by clear documentation explaining how to update your code. -## Roadmap +## ๐Ÿ—บ Roadmap Aside from stabilizing the API, the other priorities for v1.0 are: @@ -134,36 +174,39 @@ Aside from stabilizing the API, the other priorities for v1.0 are: We will provide a compatibility library which allows these APIs to be used together with `WebURL`. -Looking beyond v1.0, the other features I'd like to add are: +2. More APIs for query parameters. -2. Better APIs for `data:` URLs. + A URL's `query` component is often used as a string of key-value pairs. This usage appears to have originated with HTML forms, and WebURL has excellent support for this via its `formParams` view, but popular convention is also to use keys and values that are _not strictly_ form-encoded. This can lead to decoding issues. - WebURL already supports them as generic URLs, but it would be nice to add APIs for extracting the MIME type and decoding base64-encoded data. - -3. Non-form-encoded query parameters. + Additionally, we may want to consider making key lookup Unicode-aware. It makes sense, but AFAIK is unprecedented in other libraries and so may be surprising. But it does make a lot of sense. Feedback is welcome. + +Looking beyond v1.0, the other features I'd like to add are: - A URL's `query` component is often used as a string of key-value pairs. This usage appears to have originated with HTML forms, which WebURL supports via its `formParams` view, but popular convention these days is also to use keys and values that are not _strictly_ form-encoded. This can lead to decoding issues. +3. Better APIs for `data:` URLs. - Additionally, we may want to consider making key lookup Unicode-aware. It makes sense, but AFAIK is unprecedented in other libraries and so may be surprising. But it does make a lot of sense. - + WebURL already supports them as generic URLs, but it would be nice to add APIs for extracting the MIME type and decoding base64-encoded data. + 4. APIs for relative references. All `WebURL`s are absolute URLs (following the standard), and relative references are currently only supported as strings via the [`WebURL.resolve(_:)` method](https://karwa.github.io/swift-url/main/documentation/weburl/weburl/resolve(_:)). It would be valuable to a lot of applications (e.g. server frameworks) to add a richer API for reading and manipulating relative references, instead of using only strings. We may also want to calculate the difference between 2 URLs and return the result as a relative reference. -5. IDNA +5. Support Internationalized Domain Names (IDNA). This is part of the URL Standard, and its position on this list shouldn't be read as downplaying its importance. It is a high-priority item, but is currently blocked by other things. There is reason to hope this may be implementable soon. Native Unicode normalization was [recently](https://github.com/apple/swift/pull/38922) implemented in the Swift standard library for String, and there is a desire to expose this functionality to libraries such as this one. Once those APIs are available, we'll be able to use them to implement IDNA. +
+
-# Sponsorship +# ๐Ÿ’ Sponsorship -I'm creating this library because I think that Swift is a great language, and it deserves a high-quality, modern library for handling URLs. It has taken a lot of time to get things to this stage, and there is an exciting roadmap ahead. so if you -(or the company you work for) benefit from this project, do consider donating to show your support and encourage future development. Maybe it saves you some time on your server instances, or saves you time chasing down weird bugs in your URL code. +I'm creating this library because I think that Swift is a great language, and it deserves a high-quality, modern library for handling URLs. It has taken a lot of time to get things to this stage, and there is an exciting roadmap ahead. so if you (or the company you work for) benefit from this project, do consider sponsoring it to show your support and encourage future development. Maybe it saves you some time on your server instances, or saves you time chasing down weird bugs in your URL code. +
+
-# FAQ +# โ„น๏ธ FAQ ## How do I leave feedback? @@ -191,14 +234,16 @@ Additionally, the benchmarks package available in this repository helps ensure t It may be surprising to learn that there many interpretations of URLs floating about - after all, you type a URL in to your browser, and it just works! Right? Well, sometimes... -This [memo](https://tools.ietf.org/html/draft-ruby-url-problem-01) from the IETF network working group has a good overview of the history. In summary, URLs were first specified in 1994, and there were a lot of hopeful concepts like URIs, URNs, and scheme-specific syntax definitions. Most of those efforts didn't get the attention they would have needed and were revised by later standards such as [RFC-2396](https://datatracker.ietf.org/doc/html/rfc2396) in 1998, and [RFC-3986](https://www.ietf.org/rfc/rfc3986.txt) in 2005. Also, URLs were originally defined as ASCII, and there were fears that Unicode would break legacy systems, hence yet more standards and concepts such as IRIs, which also ended up not getting the attention they would have needed. So there are all these different standards floating around. +URLs were first specified in 1994, and were repeatedly revised over the years, such as by [RFC-2396](https://datatracker.ietf.org/doc/html/rfc2396) in 1998, and [RFC-3986](https://www.ietf.org/rfc/rfc3986.txt) in 2005. So there are all these different standards floating around - and as it turns out, they're **not always compatible** with each other, and are sometimes ambiguous. + +While all this was going on, browsers were doing their own thing, and each behaved differently to the others. The web in the 90s was a real wild west, and standards-compliance wasn't a high priority. Now, that behavior has to be maintained for compatibility, but having all these different standards can lead to severe misunderstandings and even exploitable security vulnerabilities. Consider these examples from [Orange Tsai's famous talk](https://www.youtube.com/watch?v=voTHFdL9S2k) showing how different URL parsers (sometimes even within the same application) each think these URLs point to a different server. -In the mean time, browsers had been doing their own thing. The RFCs are not only ambiguous in places, but would _break the web_ if browsers adopted them. For URL libraries (e.g. cURL) and their users, web compatibility is really important, so over time they also began to diverge from the standards. These days it's rare to find any application/library which strictly follows any published standard -- and that's pretty bad! When you type your URL in to a browser or use one in your application, you expect that everybody involved understands it the same way. Because when they don't, stuff doesn't work and it may even open up [exploitable bugs](https://www.youtube.com/watch?v=voTHFdL9S2k). +![](abusing-url-parsers-example-orange-tsai.png) ![](abusing-url-parsers-example-orange-tsai-2.png) -So we're at a state where there are multiple, incompatible standards. Clearly, there was only one answer: another standard! ๐Ÿ˜… But seriously, this time, it had to be web-compatible, so browsers could adopt it. For a URL standard, matching how browsers behave is kinda a big deal, you know? +_Images are Copyright Orange Tsai_ -This is where the WHATWG comes in to it. The WHATWG is an industry association led by the major browser developers (currently, the steering committee consists of representatives from Apple, Google, Mozilla, and Microsoft), and there is high-level approval for their browsers to align with the standards developed by the group. +So having all these incompatible standards is a problem. Clearly, there was only one answer: yet another standard! ๐Ÿ˜… But seriously, this time, it had to have browsers adopt it. For a URL standard, matching how browsers behave is kinda a big deal, you know? And they're not going to break the web, so it needs to document what it means to be "web compatible". It turns out, most URL libraries already include ad-hoc collections of hacks to try to guess what web compatibility means. -The WHATWG URL Living Standard defines how actors on the web platform should understand and manipulate URLs - how browsers process them, how code such as JavaScript processes them, etc. +This is where the WHATWG comes in to it. The WHATWG is an industry association led by the major browser developers (currently, the steering committee consists of representatives from Apple, Google, Mozilla, and Microsoft), and there is high-level approval for their browsers to align with the standards developed by the group. The latest WebKit (Safari 15) is already in compliance. The WHATWG URL Living Standard defines how **actors on the web platform** should understand and manipulate URLs - how browsers process them, how code such as JavaScript's `URL` class interprets them, etc. And this applies at all levels, from URLs in HTML documents to HTTP redirect requests. This is the web's URL standard. By aligning to the URL Living Standard, this project aims to provide the behavior you expect, with better reliability and interoperability, sharing a standard and test-suite with your browser, and engaging with the web standards process. And by doing so, we hope to make Swift an even more attractive language for both servers and client applications. \ No newline at end of file diff --git a/abusing-url-parsers-example-orange-tsai-2.png b/abusing-url-parsers-example-orange-tsai-2.png new file mode 100644 index 0000000000000000000000000000000000000000..760b7acb8686b68046f840e53ff31ed7a2644266 GIT binary patch literal 34503 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 literal 0 HcmV?d00001 diff --git a/abusing-url-parsers-example-orange-tsai.png b/abusing-url-parsers-example-orange-tsai.png new file mode 100644 index 0000000000000000000000000000000000000000..105af4abaf4b31329043d6eda917917ebd38d185 GIT binary patch literal 44363 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

8PjM?1`1y;vY$6ps08fx@Su~mtDN} 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 V#!x`9k%<8O6l7GTD