Repository: projectdiscovery/httpx (language: go)

Issue:
CSV output ignores command line options for what to extract
### httpx version:
v1.4.0

### Current Behavior:
When 

### Expected Behavior:
When running http with -csv as the output, I should only get the data columns that I've specified in the command line. However, I get everything instead. no problem for one site, but for hundreds, its way too much data.

### Steps To Reproduce:
run httpx without csv
echo "yahoo.com" | httpx -title -status-code -tech-detect -follow-redirects -asn -ip -cdn -server -ss

![image](https://github.com/projectdiscovery/httpx/assets/90011249/47fc1f77-43a6-42db-80a6-024fa92ef1dc)

run httpx with csv

echo "yahoo.com" | httpx -title -status-code -tech-detect -follow-redirects -asn -ip -cdn -server -ss -csv -o out.csv

![image](https://github.com/projectdiscovery/httpx/assets/90011249/d7000078-7b5e-45ef-9ae9-f97717f9a51c)




Discussion / hints:
@Spidle thanks for flagging this, although default output fields are not created based on CLI input, including body / header as default is unexpected and seems be a bug that we will fixing asap.

Fix patch:
diff --git a/runner/runner.go b/runner/runner.go
index 48d0d16ce..1f4f66401 100644
--- a/runner/runner.go
+++ b/runner/runner.go
@@ -2195,8 +2195,7 @@ func (r Result) CSVHeader() string { //nolint
 	ty := reflect.TypeOf(r)
 	for i := 0; i < ty.NumField(); i++ {
 		tag := ty.Field(i).Tag.Get("csv")
-
-		if ignored := tag == ""; ignored {
+		if ignored := (tag == "" || tag == "-"); ignored {
 			continue
 		}
 
@@ -2222,7 +2221,7 @@ func (r Result) CSVRow(scanopts *ScanOptions) string { //nolint
 	for i := 0; i < elem.NumField(); i++ {
 		value := elem.Field(i)
 		tag := elem.Type().Field(i).Tag.Get(`csv`)
-		if ignored := tag == ""; ignored {
+		if ignored := (tag == "" || tag == "-"); ignored {
 			continue
 		}
 


Test patch: