Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
gosec — Go सुरक्षा जाँचकर्ता | Kitploit
उपकरण/GitHubGitHub/securego/gosec
स्थैतिक कोड विश्लेषण (SAST)भेद्यता विश्लेषणकोड विश्लेषणDevSecOpsकोड विश्लेषण में शीर्ष #9स्थैतिक कोड विश्लेषण (SAST) में शीर्ष #6
GitHubsecurego/gosec

gosec

Go सुरक्षा जाँचकर्ता

रिपॉजिटरी देखें
8.9k7011337घं 46मि पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
वेबसाइट
# gosec - Go सुरक्षा जाँचकर्ता

Go AST और SSA कोड प्रतिनिधित्व को स्कैन करके स्रोत कोड में सुरक्षा समस्याओं का निरीक्षण करता है।

<img src="https://assets.kitploit.com/production/public/readmes/2947/83d294db3a312bcea542b6eb8261128e6f09b50a95271788fe301e164b1655b1.png" width="320">

## त्वरित लिंक

- [GitHub Action](#github-action)
- [स्थानीय इंस्टॉलेशन](#local-installation)
- [त्वरित शुरुआत](#quick-start)
- [सामान्य उपयोग पैटर्न](#common-usage-patterns)
- [नियमों का चयन](#selecting-rules)
- [आउटपुट प्रारूप](#output-formats)

## विशेषताएँ

- Go कोड में सामान्य सुरक्षा समस्याओं का पता लगाने के लिए **पैटर्न-आधारित नियम**
- प्रकार रूपांतरण, स्लाइस सीमाओं और क्रिप्टो समस्याओं के लिए **SSA-आधारित विश्लेषक**
- उपयोगकर्ता इनपुट से खतरनाक फ़ंक्शन तक डेटा प्रवाह को ट्रैक करने के लिए **टेंट विश्लेषण** (SQL इंजेक्शन, कमांड इंजेक्शन, पथ ट्रैवर्सल, SSRF, XSS, लॉग इंजेक्शन, SMTP इंजेक्शन, SSTI, असुरक्षित डीसेरिएलाइज़ेशन, ओपन रीडायरेक्ट)

## लाइसेंस

Apache License, Version 2.0 ("लाइसेंस") के अंतर्गत लाइसेंस प्राप्त।
आप लाइसेंस का अनुपालन किए बिना इस फ़ाइल का उपयोग नहीं कर सकते।
आप लाइसेंस की एक प्रति
[यहाँ](http://www.apache.org/licenses/LICENSE-2.0) प्राप्त कर सकते हैं।

## परियोजना की स्थिति

[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/3218/badge)](https://bestpractices.coreinfrastructure.org/projects/3218)
[![Build Status](https://github.com/securego/gosec/workflows/CI/badge.svg)](https://github.com/securego/gosec/actions?query=workflows%3ACI)
[![Coverage Status](https://codecov.io/gh/securego/gosec/branch/master/graph/badge.svg)](https://codecov.io/gh/securego/gosec)
[![GoReport](https://goreportcard.com/badge/github.com/securego/gosec)](https://goreportcard.com/report/github.com/securego/gosec)
[![GoDoc](https://pkg.go.dev/badge/github.com/securego/gosec/v2)](https://pkg.go.dev/github.com/securego/gosec/v2)
[![Docs](https://readthedocs.org/projects/docs/badge/?version=latest)](https://securego.io/)
[![Downloads](https://img.shields.io/github/downloads/securego/gosec/total.svg)](https://github.com/securego/gosec/releases)
[![GHCR](https://img.shields.io/badge/ghcr.io-securego/gosec-blue)](https://github.com/orgs/securego/packages/container/package/gosec)
[![Slack](https://img.shields.io/badge/Slack-4A154B?style=for-the-badge&logo=slack&logoColor=white)](http://securego.slack.com)
[![go-recipes](https://raw.githubusercontent.com/nikolaydubina/go-recipes/main/badge.svg?raw=true)](https://github.com/nikolaydubina/go-recipes)

## इंस्टॉलेशन

### GitHub Action

आप `gosec` को GitHub action के रूप में निम्नानुसार चला सकते हैं:

`@master` के साथ संस्करणित टैग का उपयोग करें जो नवीनतम स्थिर रिलीज़ पर पिन किया गया है। यह एक स्थिर व्यवहार प्रदान करेगा।

```yaml
name: Run Gosec
on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master
jobs:
  tests:
    runs-on: ubuntu-latest
    env:
      GO111MODULE: on
    steps:
      - name: Checkout Source
        uses: actions/checkout@v3
      - name: Run Gosec Security Scanner
        uses: securego/gosec@master
        with:
          args: ./...
```

#### निजी मॉड्यूल के साथ प्रोजेक्ट्स को स्कैन करना

यदि आपका प्रोजेक्ट निजी Go मॉड्यूल आयात करता है, तो आपको
प्रमाणीकरण कॉन्फ़िगर करना होगा ताकि `gosec` निर्भरताओं को
प्राप्त कर सके। अपने वर्कफ़्लो में निम्नलिखित एनवायरनमेंट
वेरिएबल्स सेट करें:

- `GOPRIVATE`: मॉड्यूल पाथ प्रीफ़िक्स की अल्पविराम से
  अलग की गई सूची जिन्हें निजी माना जाना चाहिए
  (उदा., `github.com/your-org/*`)।
- `GITHUB_AUTHENTICATION_TOKEN`: आपके निजी रिपॉज़िटरीज़ तक
  पढ़ने की पहुँच वाला एक GitHub टोकन।

```yaml
name: Run Gosec
on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master
jobs:
  tests:
    runs-on: ubuntu-latest
    env:
      GO111MODULE: on
      GOPRIVATE: github.com/your-org/*
      GITHUB_AUTHENTICATION_TOKEN: ${{ secrets.PRIVATE_REPO_TOKEN }}
    steps:
      - name: Checkout Source
        uses: actions/checkout@v3
      - name: Run Gosec Security Scanner
        uses: securego/gosec@v2
        with:
          args: ./...
```

### कोड स्कैनिंग के साथ एकीकरण

आप डेटा को SARIF फ़ाइलों के रूप में अपलोड करके GitHub कोड स्कैनिंग के साथ [तृतीय-पक्ष कोड विश्लेषण टूल्स को एकीकृत](https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/integrating-with-code-scanning) कर सकते हैं।

वर्कफ़्लो एक GitHub action वर्कफ़्लो में एक चरण के रूप में `gosec` चलाने का उदाहरण दिखाता है जो `results.sarif` फ़ाइल आउटपुट करता है। फिर वर्कफ़्लो `upload-sarif` action का उपयोग करके `results.sarif` फ़ाइल को GitHub पर अपलोड करता है।

```yaml
name: "Security Scan"

# Run workflow each time code is pushed to your repository and on a schedule.
# The scheduled workflow runs every at 00:00 on Sunday UTC time.
on:
  push:
  schedule:
  - cron: '0 0 * * 0'

jobs:
  tests:
    runs-on: ubuntu-latest
    env:
      GO111MODULE: on
    steps:
      - name: Checkout Source
        uses: actions/checkout@v3
      - name: Run Gosec Security Scanner
        uses: securego/gosec@v2
        with:
          # we let the report trigger content trigger a failure using the GitHub Security features.
          args: '-no-fail -fmt sarif -out results.sarif ./...'
      - name: Upload SARIF file
        uses: github/codeql-action/upload-sarif@v2
        with:
          # Path to SARIF file relative to the root of the repository
          sarif_file: results.sarif
```

### Go विश्लेषण

`goanalysis` पैकेज एक
[`golang.org/x/tools/go/analysis.Analyzer`](https://pkg.go.dev/golang.org/x/tools/go/analysis)
प्रदान करता है, जो मानक Go
विश्लेषण इंटरफ़ेस का समर्थन करने वाले टूल्स के साथ एकीकरण के लिए है, जैसे कि Bazel का
[nogo](https://github.com/bazelbuild/rules_go/blob/master/go/nogo.rst)
फ़्रेमवर्क:

```starlark
nogo(
    name = "nogo",
    deps = [
        "@com_github_securego_gosec_v2//goanalysis",
        # add more analyzers as needed
    ],
    visibility = ["//visibility:public"],
)
```

### स्थानीय इंस्टॉलेशन

gosec के लिए Go 1.25 या नया संस्करण आवश्यक है।

```bash
go install github.com/securego/gosec/v2/cmd/gosec@latest
```

## त्वरित शुरुआत

```bash
# Scan all packages in current module
gosec ./...

# Write JSON report
gosec -fmt json -out results.json ./...

# Write SARIF report for code scanning
gosec -fmt sarif -out results.sarif ./...
```

### एग्ज़िट कोड

- `0`: स्कैन बिना किसी अनसप्रेस्ड फाइंडिंग/त्रुटि के पूरा हुआ
- `1`: कम से कम एक अनसप्रेस्ड फाइंडिंग या प्रोसेसिंग त्रुटि
- हमेशा `0` लौटाने के लिए `-no-fail` का उपयोग करें

## उपयोग

Gosec को केवल नियमों का एक उपसमूह चलाने, कुछ फ़ाइल पथों को
बाहर करने, और विभिन्न प्रारूपों में रिपोर्ट तैयार करने के लिए
कॉन्फ़िगर किया जा सकता है। डिफ़ॉल्ट रूप से सभी नियम दिए गए
इनपुट फ़ाइलों पर चलाए जाएंगे। वर्तमान निर्देशिका से पुनरावर्ती
रूप से स्कैन करने के लिए आप इनपुट आर्ग्युमेंट के रूप में `./...`
प्रदान कर सकते हैं।

### उपलब्ध नियम

gosec में इन श्रेणियों के नियम शामिल हैं:

- `G1xx`: सामान्य सुरक्षित कोडिंग समस्याएँ (उदाहरण के लिए हार्डकोडेड
  क्रेडेंशियल, असुरक्षित उपयोग, HTTP हार्डनिंग, कुकी सुरक्षा)
- `G2xx`: क्वेरी/टेम्पलेट/कमांड निर्माण में इंजेक्शन जोखिम
- `G3xx`: फ़ाइल और पथ प्रबंधन जोखिम (अनुमतियाँ, ट्रैवर्सल,
  अस्थायी फ़ाइलें, आर्काइव निष्कर्षण)
- `G4xx`: क्रिप्टो और TLS कमज़ोरियाँ
- `G5xx`: ब्लॉकलिस्टेड इम्पोर्ट
- `G6xx`: Go-विशिष्ट शुद्धता/सुरक्षा जाँच (उदाहरण के लिए
  रेंज एलियासिंग और स्लाइस बाउंड्स)
- `G7xx`: टेन्ट एनालिसिस नियम (SQL इंजेक्शन, कमांड
  इंजेक्शन, पथ ट्रैवर्सल, SSRF, XSS, लॉग, SMTP इंजेक्शन,
  SSTI, असुरक्षित डीसेरियलाइज़ेशन, और ओपन रीडायरेक्ट)

पूरी सूची, नियम विवरण, और प्रति-नियम कॉन्फ़िगरेशन के लिए,
[RULES.md](https://github.com/securego/gosec/blob/master/RULES.md) देखें।

### सेवानिवृत्त नियम

- G105: math/big.Int.Exp के उपयोग का ऑडिट करें -
  [CVE ठीक हो गया है](https://github.com/golang/go/issues/15184)
- G307: किसी ऐसी विधि को डिफ़र करना जो त्रुटि लौटाती है - इस
  [ब्लॉग पोस्ट](https://www.joeshaw.org/dont-defer-close-on-writable-files/)
  के विवरण के बावजूद, सुरक्षा समस्या ठीक करने की तुलना में अधिक
  असुविधा पैदा करता है

### नियमों का चयन

डिफ़ॉल्ट रूप से, gosec दिए गए फ़ाइल पथों पर सभी नियम चलाएगा।
हालाँकि, `-include=` फ़्लैग के माध्यम से चलाने के लिए नियमों का
एक उपसमूह चुनना, या `-exclude=` फ़्लैग का उपयोग करके स्पष्ट रूप
से बाहर करने के लिए नियमों का एक सेट निर्दिष्ट करना संभव है।

```bash
# Run a specific set of rules
$ gosec -include=G101,G203,G401 ./...

# Run everything except for rule G303
$ gosec -exclude=G303 ./...
```

### CWE मैपिंग

`gosec` द्वारा पहचाना गया प्रत्येक मुद्दा एक
[CWE (Common Weakness Enumeration)](http://cwe.mitre.org/data/index.html) से मैप किया जाता है
जो कमजोरी को अधिक सामान्य शब्दों में वर्णित करता है। सटीक
मैपिंग
[यहाँ](https://github.com/securego/gosec/blob/master/issue/issue.go#L50) पाई जा सकती है।

### कॉन्फ़िगरेशन

कई वैश्विक सेटिंग्स एक कॉन्फ़िगरेशन
फ़ाइल में निम्नानुसार प्रदान की जा सकती हैं:

```JSON
{
    "global": {
        "nosec": "enabled",
        "audit": "enabled"
    }
}
```

- `nosec`: यह सेटिंग पूरे कोड बेस में परिभाषित सभी `#nosec` निर्देशों को ओवरराइट कर देगी
- `audit`: ऑडिट मोड में चलता है जो अतिरिक्त जाँचें सक्षम करता है
  जो सामान्य कोड विश्लेषण के लिए बहुत अधिक दखल देने वाली हो सकती हैं

```bash
# Run with a global configuration file
$ gosec -conf config.json .
```

### पथ-आधारित नियम बहिष्करण

कई घटकों वाले बड़े रिपॉज़िटरी में विभिन्न पथों के लिए अलग-अलग
सुरक्षा नियमों की आवश्यकता हो सकती है। विशिष्ट पथों के लिए विशिष्ट नियमों को
दबाने के लिए `exclude-rules` का उपयोग करें।

**कॉन्फ़िगरेशन फ़ाइल:**
```json
{
  "exclude-rules": [
    {
      "path": "cmd/.*",
      "rules": ["G204", "G304"]
    },
    {
      "path": "scripts/.*",
      "rules": ["*"]
    }
  ]
}
```

**CLI फ़्लैग:**
```bash
# Exclude G204 and G304 from cmd/ directory
gosec --exclude-rules="cmd/.*:G204,G304" ./...

# Exclude all rules from scripts/ directory  
gosec --exclude-rules="scripts/.*:*" ./...

# Multiple exclusions
gosec --exclude-rules="cmd/.*:G204,G304;test/.*:G101" ./...
```

| फ़ील्ड | प्रकार | विवरण |
|-------|------|-------------|
| `path` | string (regex) | फ़ाइल पथों के विरुद्ध मिलान किया गया regex |
| `rules` | []string | बहिष्कृत करने के लिए रूल ID। सभी के लिए `*` |

#### रूल कॉन्फ़िगरेशन

कुछ रूल कॉन्फ़िगरेशन फ़्लैग भी स्वीकार करते हैं; ये फ़्लैग
[RULES.md](https://github.com/securego/gosec/blob/master/RULES.md) में
प्रलेखित हैं।

#### Go संस्करण

कुछ रूल के लिए एक विशिष्ट Go संस्करण आवश्यक होता है, जो प्रोजेक्ट में
मौजूद Go मॉड्यूल फ़ाइल से प्राप्त किया जाता है। यदि यह संस्करण
नहीं मिल पाता, तो यह Go रनटाइम संस्करण पर वापस चला जाएगा।

Go मॉड्यूल संस्करण को `go list` कमांड का उपयोग करके पार्स किया जाता है,
जो कुछ मामलों में प्रदर्शन में गिरावट ला सकता है। इस स्थिति में,
पर्यावरण चर `GOSECGOVERSION=go1.21.1` सेट करके go मॉड्यूल संस्करण
आसानी से प्रदान किया जा सकता है।

### निर्भरताएँ

gosec Go मॉड्यूल का उपयोग करके पैकेज लोड करता है। अधिकांश प्रोजेक्ट्स में,
स्कैनिंग के दौरान निर्भरताएँ स्वचालित रूप से हल हो जाती हैं।

यदि निर्भरताएँ अनुपलब्ध हैं, तो चलाएँ:

```bash
go mod tidy
go mod download
```

### टेस्ट फ़ाइलों और फ़ोल्डरों को बाहर रखना

gosec सभी पैकेजों में टेस्ट फ़ाइलों और आपकी vendor डायरेक्टरी में मौजूद किसी भी
निर्भरता को अनदेखा करेगा।

टेस्ट फ़ाइलों की स्कैनिंग को निम्नलिखित
फ़्लैग के साथ सक्षम किया जा सकता है:

```bash
gosec -tests ./...
```

इसके अलावा अतिरिक्त फ़ोल्डरों को इस प्रकार बाहर रखा जा सकता है:

```bash
 gosec -exclude-dir=rules -exclude-dir=cmd ./...
```

### जनरेट की गई फ़ाइलों को बाहर करना

gosec डिफ़ॉल्ट जनरेट किए गए
कोड टिप्पणी के साथ जनरेट की गई go फ़ाइलों को अनदेखा कर सकता है।

```
// Code generated by some generator DO NOT EDIT.
```

```bash
gosec -exclude-generated ./...
```

### स्वचालित रूप से कमज़ोरियों को ठीक करना

gosec AI अनुशंसा के आधार पर सुधार सुझा सकता है। यह किसी सुरक्षा निष्कर्ष के लिए सुझाव प्राप्त करने हेतु AI API को कॉल करेगा।

आप निम्नलिखित कमांड लाइन आर्ग्युमेंट्स प्रदान करके इस सुविधा को सक्षम कर सकते हैं:

- `ai-api-provider`: AI API प्रदाता का नाम।
  समर्थित प्रदाता:
  - **Atlas Cloud**: `atlas` (डिफ़ॉल्ट मॉडल
    `deepseek-ai/deepseek-v4-flash`),
    `atlas-deepseek-v4-flash`,
    `atlas-qwen3-coder-next`, `atlas-kimi-k2.6`, या
    किसी भी Atlas Cloud होस्टेड चैट मॉडल के लिए `atlas:<model-id>`।
    Atlas Cloud एक OpenAI-संगत प्रदाता है जो यहाँ उपलब्ध है:
    [atlascloud.ai](https://www.atlascloud.ai/?utm_source=github&utm_medium=link&utm_campaign=gosec)
  - **Gemini**: `gemini-3.1-pro-preview` (डिफ़ॉल्ट),
    `gemini-2.5-pro`, `gemini-2.5-flash`,
    `gemini-2.5-flash-lite`
  - **Claude**: `claude-sonnet-4-6` (डिफ़ॉल्ट),
    `claude-opus-4-7`, `claude-opus-4-6`,
    `claude-sonnet-4-5`, `claude-opus-4-5`,
    `claude-haiku-4-5`
  - **OpenAI**: `gpt-5.4` (डिफ़ॉल्ट), `gpt-5.4-mini`,
    `gpt-5.4-nano`
  - **कस्टम OpenAI-संगत**: कोई भी कस्टम मॉडल नाम
    (`ai-base-url` आवश्यक है)
- `ai-api-key` या पर्यावरण चर
  `GOSEC_AI_API_KEY` सेट करें: AI API तक पहुँचने की कुंजी
  - Gemini के लिए, आप
    [इन निर्देशों](https://ai.google.dev/gemini-api/docs/api-key) का पालन करते हुए API कुंजी बना सकते हैं
  - Claude के लिए, अपनी API कुंजी
    [Anthropic Console](https://console.anthropic.com/) से प्राप्त करें
  - OpenAI के लिए, अपनी API कुंजी
    [OpenAI Platform](https://platform.openai.com/api-keys) से प्राप्त करें
- `ai-base-url`: (वैकल्पिक) OpenAI-संगत APIs के लिए कस्टम बेस URL
  (जैसे, Azure OpenAI, LocalAI,
  Ollama)
  - Atlas Cloud डिफ़ॉल्ट रूप से `https://api.atlascloud.ai/v1` का उपयोग करता है,
    इसलिए अंतर्निहित `atlas` प्रदाता के लिए `ai-base-url` वैकल्पिक है
- `GOSEC_AI_PROVIDER`: (वैकल्पिक) `ai-api-provider` का पर्यावरण चर
  विकल्प
- `GOSEC_AI_BASE_URL`: (वैकल्पिक) `ai-base-url` का पर्यावरण चर
  विकल्प
- `ai-skip-ssl`: (वैकल्पिक) AI API के लिए SSL प्रमाणपत्र सत्यापन छोड़ें
  (स्व-हस्ताक्षरित प्रमाणपत्रों के लिए उपयोगी)

> 🎁 **[Atlas Cloud](https://www.atlascloud.ai/?utm_source=github&utm_medium=link&utm_campaign=gosec)** एक फुल-मोडल AI इन्फरेंस प्लेटफ़ॉर्म है जो डेवलपर्स को वीडियो जनरेशन, इमेज जनरेशन और LLM APIs तक पहुँचने के लिए एक एकल AI API प्रदान करता है। कई विक्रेता एकीकरणों को प्रबंधित करने के बजाय, आप एक बार कनेक्ट करते हैं और सभी मोडैलिटीज़ में 300+ क्यूरेटेड मॉडलों तक एकीकृत पहुँच प्राप्त करते हैं।
>
> अधिक बजट-अनुकूल API पहुँच के लिए Atlas Cloud के नए कोडिंग प्लान प्रमोशन को देखें: [https://www.atlascloud.ai/console/coding-plan](https://www.atlascloud.ai/console/coding-plan)

**उदाहरण:**

```bash
# Using Atlas Cloud with the default DeepSeek V4 Flash model
export GOSEC_AI_API_KEY="your_key"
export GOSEC_AI_PROVIDER="atlas"
gosec ./...

# Using Atlas Cloud with an explicit hosted model
GOSEC_AI_API_KEY="your_key" \
  gosec -ai-api-provider="atlas:qwen/qwen3-coder-next" ./...

# Using Gemini
gosec -ai-api-provider="gemini-3.1-pro-preview" \
  -ai-api-key="your_key" ./...

# Using Claude
gosec -ai-api-provider="claude-sonnet-4-6" \
  -ai-api-key="your_key" ./...

# Using OpenAI
gosec -ai-api-provider="gpt-5.4" \
  -ai-api-key="your_key" ./...

# Using Azure OpenAI
gosec -ai-api-provider="gpt-5.4" \
  -ai-api-key="your_azure_key" \
  -ai-base-url="https://your-resource.openai.azure.com/openai/deployments/your-deployment" \
  ./...

# Using local Ollama with custom model
gosec -ai-api-provider="llama3.2" \
  -ai-base-url="http://localhost:11434/v1" \
  ./...

# Using self-signed certificate API
gosec -ai-api-provider="custom-model" \
  -ai-api-key="your_key" \
  -ai-base-url="https://internal-api.company.com/v1" \
  -ai-skip-ssl \
  ./...
```

### कोड एनोटेट करना

सभी स्वचालित डिटेक्शन टूल्स की तरह, यहाँ भी
फ़ॉल्स पॉज़िटिव के मामले होंगे। ऐसे मामलों में जहाँ gosec किसी विफलता की रिपोर्ट करता है जिसे
मैन्युअली रूप से सुरक्षित सत्यापित किया जा चुका है, कोड को
ऐसी टिप्पणी के साथ एनोटेट करना संभव है जो `#nosec` से शुरू होती है।

`#nosec` टिप्पणी का प्रारूप
`#nosec [RuleList] [-- Justification]` होना चाहिए।

`#nosec` टिप्पणी को उसी पंक्ति पर रखा जाना चाहिए जहाँ
चेतावनी रिपोर्ट की गई है।

```go
func main() {
	tr := &http.Transport{
		TLSClientConfig: &tls.Config{
			InsecureSkipVerify: true, // #nosec G402
		},
	}

	client := &http.Client{Transport: tr}
	_, err := client.Get("https://go.dev/")
	if err != nil {
		fmt.Println(err)
	}
}
```

जब किसी विशिष्ट false positive की पहचान हो जाए और उसे सुरक्षित
सत्यापित कर लिया जाए, तो आप कोड के किसी अनुभाग में केवल उसी एकल
नियम (या नियमों के किसी विशिष्ट समूह) को दबाना चाह सकते हैं, जबकि
अन्य समस्याओं के लिए स्कैनिंग जारी रहे। ऐसा करने के लिए, आप
`#nosec` एनोटेशन के भीतर दबाए जाने वाले नियम(ों) को सूचीबद्ध कर सकते हैं,
जैसे: `/* #nosec G401 */` या `//#nosec G201 G202 G203`

आप एनोटेशन के लिए विवरण या औचित्य पाठ जोड़ सकते हैं।
औचित्य दबाए जाने वाले नियम(ों) के बाद होना चाहिए और दो या अधिक
डैश से शुरू होना चाहिए,
जैसे: `//#nosec G101 G102 -- This is a false positive`

वैकल्पिक रूप से, gosec `//gosec:disable` निर्देश का भी समर्थन करता है,
जो `#nosec` के समान कार्य करता है:

```go
//gosec:disable G101 -- This is a false positive
```

कुछ मामलों में आप उन स्थानों पर भी पुनः जाना चाह सकते हैं जहाँ
`#nosec` या `//gosec:disable` एनोटेशन का उपयोग किया गया है। स्कैनर चलाने और किसी भी `#nosec` एनोटेशन को अनदेखा करने के लिए आप निम्नलिखित कर सकते हैं:

```bash
gosec -nosec=true ./...
```

#### नियम ID और औचित्य की आवश्यकता

एनोटेशन को अनजाने में असंबंधित नियमों को दबाने से रोकने के लिए, या बिना किसी स्पष्टीकरण के जोड़े जाने से रोकने के लिए, gosec दो ऑप्ट-इन फ़्लैग स्वीकार करता है। दोनों का डिफ़ॉल्ट `false` है, इसलिए मौजूदा कोडबेस बिना किसी बदलाव के काम करते रहते हैं।

- `-nosec-require-rules` उन नंगे `#nosec` /
  `//gosec:disable` निर्देशों को अस्वीकार करता है जिनमें कोई भी नियम ID सूचीबद्ध नहीं होती।
- `-nosec-require-justification` उन निर्देशों को अस्वीकार करता है जिनमें
  नियम सूची के बाद `-- justification` नहीं होता।

सक्षम होने पर, जो निर्देश जाँच में विफल होता है, वह अब किसी भी निष्कर्ष को नहीं दबाता और आउटपुट में एक त्रुटि के रूप में रिपोर्ट किया जाता है, साथ ही उस पंक्ति पर किसी भी अंतर्निहित समस्या के साथ।

```bash
gosec -nosec-require-rules -nosec-require-justification ./...
```

वही विकल्प वैश्विक कॉन्फ़िग ब्लॉक के माध्यम से सेट किए जा सकते हैं:

```json
{
    "global": {
        "nosec-require-rules": "enabled",
        "nosec-require-justification": "enabled"
    }
}
```

### सप्रेशन ट्रैकिंग

जैसा कि ऊपर वर्णित है, हम उल्लंघनों को बाह्य रूप से
(`-include`/`-exclude` का उपयोग करके) या इनलाइन (`#nosec`
एनोटेशन का उपयोग करके) सप्रेस कर सकते हैं। ऑडिटिंग के लिए सप्रेशन मेटाडेटा उत्सर्जित किया जा सकता है।

`-track-suppressions` के साथ सप्रेशन ट्रैकिंग सक्षम करें:

```bash
gosec -track-suppressions -exclude=G101 \
  -fmt=sarif -out=results.sarif ./...
```

- बाहरी सप्रेशन के लिए, gosec सप्रेशन जानकारी रिकॉर्ड करता है
  जहाँ `kind` `external` है और `justification`
  `Globally suppressed.` है।
- इनलाइन सप्रेशन के लिए, gosec सप्रेशन जानकारी रिकॉर्ड करता है
  जहाँ `kind` `inSource` है और `justification` कमेंट में
  दो या अधिक डैश के बाद का टेक्स्ट है।

**नोट:** केवल SARIF और JSON फ़ॉर्मेट सप्रेशन ट्रैकिंग का
समर्थन करते हैं।

### बिल्ड टैग

gosec आपके
[Go बिल्ड टैग](https://pkg.go.dev/go/build/) को एनालाइज़र तक पास कर सकता है।

---

[Read more](https://github.com/securego/gosec)
टूल डाउनलोड करें