Research
Security News
Kill Switch Hidden in npm Packages Typosquatting Chalk and Chokidar
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
github.com/fsouza/fake-gcs-server
fake-gcs-server provides an emulator for Google Cloud Storage API. It can be used as a library in Go projects and/or as a standalone binary/Docker image.
The library is available inside the package
github.com/fsouza/fake-gcs-server/fakestorage
and can be used from within test suites in Go package. The emulator is
available as a binary that can be built manually, downloaded from the releases
page or pulled from Docker
Hub (docker pull fsouza/fake-gcs-server
).
You can stub/mock Google Cloud Storage as a standalone server (like the datastore/pubsub emulators)
which is ideal for integration tests and/or tests in other languages you may want to run the
fake-gcs-server
inside a Docker container:
docker run -d --name fake-gcs-server -p 4443:4443 fsouza/fake-gcs-server
In case you want to preload some data in fake-gcs-server
just mount a
folder in the container at /data
:
docker run -d --name fake-gcs-server -p 4443:4443 -v ${PWD}/examples/data:/data fsouza/fake-gcs-server
Where the content of ${PWD}/examples/data
is something like:
.
└── sample-bucket
└── some_file.txt
To make sure everything works as expected you can execute these commands:
curl --insecure https://0.0.0.0:4443/storage/v1/b
{"kind":"storage#buckets","items":[{"kind":"storage#bucket","id":"sample-bucket","name":"sample-bucket"}],"prefixes":null}
curl --insecure https://0.0.0.0:4443/storage/v1/b/sample-bucket/o
{"kind":"storage#objects","items":[{"kind":"storage#object","name":"some_file.txt","id":"sample-bucket/some_file.txt","bucket":"sample-bucket","size":"33"}],"prefixes":[]}
This will result in one bucket called sample-bucket
containing one object called some_file.txt
.
fake-gcs-server defaults to HTTPS, but it can also be used with HTTP. The flag
-scheme
can be used to specify the protocol.
The binding port will be -port
(defaults to 4443
).
For example, the previous example could be changed to pass -scheme http
:
docker run -d --name fake-gcs-server -p 4443:4443 -v ${PWD}/examples/data:/data fsouza/fake-gcs-server -scheme http
And now we can curl it without the --insecure
flag and using http://
instead of https://
:
curl http://0.0.0.0:4443/storage/v1/b
{"kind":"storage#buckets","items":[{"kind":"storage#bucket","id":"sample-bucket","name":"sample-bucket"}],"prefixes":null}
curl http://0.0.0.0:4443/storage/v1/b/sample-bucket/o
{"kind":"storage#objects","items":[{"kind":"storage#object","name":"some_file.txt","id":"sample-bucket/some_file.txt","bucket":"sample-bucket","size":"33"}],"prefixes":[]}
To start both HTTPS and HTTP servers, pass -scheme both
.
HTTPS will bind to -port
(defaults to 4443
) and HTTP will bind to -port-http
(defaults to 8000
).
For example, the previous example could be changed to pass -scheme both
:
docker run -d --name fake-gcs-server -p 4443:4443 -p 8000:8000 -v ${PWD}/examples/data:/data fsouza/fake-gcs-server -scheme both
It is possible to use fake-gcs-server with signed URLs, although with a few caveats:
storage.googleapis.com
with something that points to fake-gcs-server)-public-host
)fake-gcs-server supports various features that can be configured through flags
upon start. Use the -help
flag to list all of them alongside their usage
instructions
docker run --rm fsouza/fake-gcs-server -help
For examples using SDK from multiple languages, check out the
examples
directory.
You may use docker build
to build the image locally instead of pulling it
from Docker Hub:
docker build -t fsouza/fake-gcs-server .
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.