All Projects → awalgarg → Curl Tap Sh

awalgarg / Curl Tap Sh

tap curl in your editor before it gets to sh it

Programming Languages

shell
77523 projects

Labels

Projects that are alternatives of or similar to Curl Tap Sh

Gdown
Download a large file from Google Drive (curl/wget fails because of the security notice).
Stars: ✭ 962 (+980.9%)
Mutual labels:  curl
Curl
Wraps the curl CLI to be used in Github Actions
Stars: ✭ 59 (-33.71%)
Mutual labels:  curl
Cognitocurl
🦉🤖Easily sign curl calls to API Gateway with Cognito authorization token.
Stars: ✭ 76 (-14.61%)
Mutual labels:  curl
Php Educational Administration
大学微信查教务成绩 数据抓取 数据分析 微信查成绩 验证码识别 redis缓存
Stars: ✭ 38 (-57.3%)
Mutual labels:  curl
Roboget
📦Roboget automates the process of getting apps and downloads directly
Stars: ✭ 49 (-44.94%)
Mutual labels:  curl
Wsend
wsend: The opposite of wget
Stars: ✭ 64 (-28.09%)
Mutual labels:  curl
Curl Collisions
An implementation of Heilman et al.'s differential attack on IOTA's Curl hashing function.
Stars: ✭ 20 (-77.53%)
Mutual labels:  curl
Http Client
A high-performance, high-stability, cross-platform HTTP client.
Stars: ✭ 86 (-3.37%)
Mutual labels:  curl
Bashupload
PHP/JavaScript file upload web app to upload files from command line & browser, and download them elsewhere. Frequently used to upload/download files on servers. Hosted version is available at bashupload.com.
Stars: ✭ 56 (-37.08%)
Mutual labels:  curl
Resume
Create an online resume that can be accessed by a `curl` command.
Stars: ✭ 74 (-16.85%)
Mutual labels:  curl
Gmod Chttp
A HTTP()-compatible wrapper for curl in Garry's Mod.
Stars: ✭ 39 (-56.18%)
Mutual labels:  curl
Activity
A PHP API to log anything anywhere
Stars: ✭ 44 (-50.56%)
Mutual labels:  curl
Cascadia
Go cascadia package command line CSS selector
Stars: ✭ 67 (-24.72%)
Mutual labels:  curl
Lyndacoursesdownloader
Cross platform .net core program to download lynda.com courses for offline use
Stars: ✭ 37 (-58.43%)
Mutual labels:  curl
Okurl
OkHttp Kotlin command line
Stars: ✭ 77 (-13.48%)
Mutual labels:  curl
Coronavirus Tracker Cli
Track conronavirus cases from command line. curl https://corona-stats.online/
Stars: ✭ 954 (+971.91%)
Mutual labels:  curl
Lush Http
Smart Http Client for PHP
Stars: ✭ 60 (-32.58%)
Mutual labels:  curl
Androidhttp
Android Http网络开发神兵利器
Stars: ✭ 88 (-1.12%)
Mutual labels:  curl
Steamcmd Autoupdate Any Gameserver
Windows SteamCMD to autoupdate and install any game server steam cmd settings configurable lots of useful features. This batch script will keep your game servers automaticly updated updating intervals announce the server is shutting down for updates etc all configurable.
Stars: ✭ 77 (-13.48%)
Mutual labels:  curl
Snomed In 5 Minutes
Easy-to-use tutorials for accessing SNOMED APIs within 5 min using various programming languages
Stars: ✭ 70 (-21.35%)
Mutual labels:  curl

curl-tap-sh

So, the internet seems to have a lot of software with the installation method being in the infamous curl .. | sh format. People don't like this because what curl downloads might have been messed with by someone in between depending on the specifics. But people still use this method because it is convenient.

Awal is here to present a solution. Included in this repo is a script, which you can put in your $PATH by the name tap. And now whenever you are about to run:

curl foo/bar | sh

Simply run the following instead:

curl foo/bar | tap | sh

tap will first collect all the data from curl, save it to a temp file, open that file in your $EDITOR (or vim if not specified), and you can review it. You can make changes to it if you want. If you write the file and close the editor successfully (i.e., the editor returns exit code 0), then tap sends the saved output (including your edits, if any) along the pipe. Else it doesn't (so you can exit with :cq in vim if you don't want to run the script after reviewing). This also shields against a timing attack which detects curl | sh server-side.

Ofcourse, tap deletes the temporary file after this :)

Other Stuff

There is also vipe from the excellent moreutils toolkit, written as a perl script. It does pretty much the same thing.

There is hashpipe, written in Go, which verifies stdin based on a checksum passed to it. This is a pretty good idea too, but it requires the distributor of the script to provide an up-to-date checksum at all times, and you need to be sure that the medium through which you are obtaining the checksum has not been meddled with.

Author

Awal Garg [email protected], @awalGarg

This repo is released under WTFPL.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].