Only the latest version of the ABA PayWay Python SDK receives security updates.
| Version | Supported |
|---|---|
| 0.1.x | β Yes |
| < 0.1 | β No |
Please do NOT report security vulnerabilities through public GitHub Issues.
If you discover a security vulnerability in this SDK, please report it responsibly by emailing:
π§ khonchanphearaa@gmail.com
Please include the following in your report:
- A clear description of the vulnerability
- Steps to reproduce the issue
- Potential impact (what an attacker could do)
- Any suggested fix (optional but appreciated)
- Acknowledgement within 48 hours
- Status update within 5 business days
- Fix and release as soon as possible depending on severity
- Credit in the release notes if you wish (just let us know)
We appreciate responsible disclosure and will never take legal action against researchers who follow this process.
# Bad β never commit this
config = PayWayConfig(
merchant_id="your_merchant_id",
api_key="your_api_key",
)
# Good β load from environment
import os
config = PayWayConfig(
merchant_id=os.environ["ABA_MERCHANT_ID"],
api_key=os.environ["ABA_API_KEY"],
)# .env
ABA_MERCHANT_ID=your_merchant_id
ABA_API_KEY=your_api_key# .gitignore β make sure this is present
.env
.env.*On your server or CI/CD pipeline, set secrets as environment variables β never store them in config files that get committed to version control.
If you suspect your API key has been exposed:
- Contact ABA PayWay immediately at paywaysales@ababank.com
- Request a new API key
- Update your environment variables
- Audit your git history β if the key was committed, it is permanently exposed even after deletion
ABA PayWay restricts API access by IP address. Only whitelist IPs you control and trust. Remove old IPs when decommissioning servers.
| Protection | Details |
|---|---|
| HMAC-SHA512 signing | Every request is signed β the API key never travels over the wire |
| HTTPS only | All communication is encrypted in transit |
| Zero dependencies | No third-party packages = no supply chain risk |
| Request timeout | Prevents hanging connections (default: 30s) |
| API key masked | The key never appears in logs or repr() output |
| Input validation | Requests are validated before being sent to the API |