Skill

security-best-practices

by openai

AI Summary

Provides language-specific security best-practice reviews and improvement suggestions for Python, JavaScript/TypeScript, and Go code. Developers building secure applications benefit from automated security guidance tailored to their framework and language.

Install

# Add to your project root as SKILL.md
curl -o SKILL.md "https://raw.githubusercontent.com/openai/skills/main/skills/.curated/security-best-practices/SKILL.md"

Description

Perform language and framework specific security best-practice reviews and suggest improvements. Trigger only when the user explicitly requests security best practices guidance, a security review/report, or secure-by-default coding help. Trigger only for supported languages (python, javascript/typescript, go). Do not trigger for general code review, debugging, or non-security tasks.

Overview

This skill provides a description of how to identify the language and frameworks used by the current context, and then to load information from this skill's references directory about the security best practices for this language and or frameworks. This information, if present, can be used to write new secure by default code, or to passively detect major issues within existing code, or (if requested by the user) provide a vulnerability report and suggest fixes.

Workflow

The initial step for this skill is to identify ALL languages and ALL frameworks which you are being asked to use or already exist in the scope of the project you are working in. Focus on the primary core frameworks. Often you will want to identify both frontend and backend languages and frameworks. Then check this skill's references directory to see if there are any relevant documentation for the language and or frameworks. Make sure you read ALL reference files which relate to the specific framework or language. The format of the filenames is <language>-<framework>-<stack>-security.md. You should also check if there is a <language>-general-<stack>-security.md which is agnostic to the framework you may be using. If working on a web application which includes a frontend and a backend, make sure you have checked for reference documents for BOTH the frontend and backend! If you are asked to make a web app which will include both a frontend and backend, but the frontend framework is not specified, also check out javascript-general-web-frontend-security.md. It is important that you understand how to secure both the frontend and backend. If no relevant information is available in the skill's references directory, think a little bit about what you know about the language, the framework, and all well known security best practices for it. If you are unsure you can try to search online for documentation on security best practices. From there it can operate in a few ways. • The primary mode is to just use the information to write secure by default code from this point forward. This is useful for starting a new project or when writing new code. • The secondary mode is to passively detect vulnerabilities while working in the project and writing code for the user. Critical or very important vulnerabilities or major issues going against security guidance can be flagged and the user can be told about them. This passive mode should focus on the largest impact vulnerabilities and secure defaults. • The user can ask for a security report or to improve the security of the codebase. In this case a full report should be produced describe anyways the project fails to follow security best practices guidance. The report should be prioritized and have clear sections of severity and urgency. Then offer to start working on fixes for these issues. See #fixes below.

Workflow Decision Tree

• If the language/framework is unclear, inspect the repo to determine it and list your evidence. • If matching guidance exists in references/, load only the relevant files and follow their instructions. • If no matching guidance exists, consider if you know any well known security best practices for the chosen language and or frameworks, but if asked to generate a report, let the user know that concrete guidance is not available (you can still generate the report or detect for sure critical vulnerabilities)

Overrides

While these references contain the security best practices for languages and frameworks, customers may have cases where they need to bypass or override these practices. Pay attention to specific rules and instructions in the project's documentation and prompt files which may require you to override certain best practices. When overriding a best practice, you MAY report it to the user, but do not fight with them. If a security best practice needs to be bypassed / ignored for some project specific reason, you can also suggest to add documentation about this to the project so it is clear why the best practice is not being followed and to follow that bypass in the future.

Quality Score

B

Good

77/100

Standard Compliance65
Documentation Quality62
Usefulness78
Maintenance Signal100
Community Signal100
Scored Today

GitHub Signals

Stars10.2k
Forks569
Issues104
UpdatedToday
View on GitHub

Trust & Transparency

No License Detected

Review source code before installing

Verified Open Source

Hosted on GitHub — publicly auditable

Actively Maintained

Last commit Today

10.2k stars — Strong Community

569 forks

My Fox Den

Community Rating

Works With

Claude Code