Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Readme
A module for obfuscating a mysqldump file
This project is a partial-port of My_Obfusicate. Under the hood it mostly uses Faker for generating fake data.
This package exposes a py_obfuscate
module which contains Obfuscator
class with a very simple inteface.
It's obfuscate
method expects two streams: a read string (e.g. the mysqldump file) and write stream (e.g. the file to write the obfuscated dump to).
obfuscatator.obfuscate(streamIn, streamOut)
As a more practical example, create the file obfuscate.py
import sys
import yaml
import py_obfuscate
config = yaml.safe_load(open("obfuscator.yaml"))
obfuscatator = py_obfuscate.Obfuscator(config)
src = sys.stdin
out = sys.stdout
obfuscatator.obfuscate(src, out)
Now create a config file (obfuscate.yaml
), e.g.:
tables:
users:
name:
type: "name"
email:
type: "email"
accountno:
type: "string"
chars: "1234567890"
length: 10
You should change this config to reflect the tables and columns you wish to obfuscate.
Now you can run:
mysqldump -c --add-drop-table --hex-blob -u user -ppassword database | python obfuscate.py > obfuscated_dump.sql
Note that the -c
option on mysqldump is required to use py_obfuscate. Additionally, the default behavior of mysqldump is to output special characters. This may cause trouble, so you can request hex-encoded blob content with –hex-blob
. If you get MySQL errors due to very long lines, try some combination of –max_allowed_packet=128M
, –single-transaction
, –skip-extended-insert
, and –quick
.
In the above example we've used YAML as the configuration format; since you pass py_obfuscate.Obfuscator
a config object (dictionary) you can
use any format you wish, so long as parses into the same structure. The basic structure is:
locale: <local string (optional): defaults "en_GB">
tables:
<table>:
truncate: <boolean - set to true to remove insert for this table. Defaults `false`>
<column>:
type: <type - how to obfusciate this column>
<type-specific-option>: <type-specific-option-value>
Tables or columns which are ommitted from the config are ignored. Currently no warning is given.
"en_GB"
This is the locale string passed to Faker.
Setting truncate: true
for a table will remove the insert from the mysqldump.
These are the following types supported:
Options:
chars
(string) The character list to choose from (defaults "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_+-=[{]}/?|!@#$%^&*()``~"
)length
(integer) The length of the string (defaults 10
)Options:
value
(string|array) Replace column entries with this value or one of the values in the specified array (defaults ""
)Options:
min
(string) Replace column entries with a random integer greater than or equal to this value (defaults 0
)max
(string) Replace column entries with a random integer less than or equal to this value (defaults 100
)python -m unittest discover -s py_obfuscate
This work is provided under the MIT License. See the included LICENSE file.
FAQs
A module for obfuscating a mysqldump file
We found that py-obfuscate demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
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.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.