Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
github.com/iwot/sqlite3createtableparser
:scroll: Advanced PRAGMA table_info through DDL parsing
A parser for sqlite create table sql statements.
SQLite is a very powerful software but it lacks an easy way to extract complete information about table and columns constraints. The built-in sql pragma:
PRAGMA schema.table_info(table-name);
PRAGMA foreign_key_list(table-name);
provide incomplete information and a manual parsing is required in order to extract more useful information.
CREATE TABLE syntax diagrams can be found on the official sqlite website.
package main
import "github.com/lempiy/Sqlite3CreateTableParser/parser"
//some fancy DDL
const ddl = `
CREATE TABLE contact_groups (
contact_id integer,
group_id integer,
PRIMARY KEY (contact_id, group_id),
FOREIGN KEY (contact_id) REFERENCES contacts (contact_id)
ON DELETE CASCADE ON UPDATE NO ACTION,
FOREIGN KEY (group_id) REFERENCES groups (group_id)
ON DELETE CASCADE ON UPDATE NO ACTION
);
`
func main() {
table, errCode := parser.ParseTable(sql, 0)
if errCode != parser.ERROR_NONE {
panic("Error during parsing sql")
}
// do stuff with received data
fmt.Printf("%+v\n", table)
}
type Table struct {
Name string
Schema string
IsTemporary bool
IsIfNotExists bool
IsWithoutRowid bool
NumColumns int
Columns []Column
NumConstraint int
Constraints []TableConstraint
}
type Column struct {
Name string
Type string
Length string
ConstraintName string
IsPrimaryKey bool
IsAutoincrement bool
IsNotnull bool
IsUnique bool
PkOrder OrderClause
PkConflictClause ConflictClause
NotNullConflictClause ConflictClause
UniqueConflictClause ConflictClause
CheckExpr string
DefaultExpr string
CollateName string
ForeignKeyClause *ForeignKey
}
type TableConstraint struct {
Type ConstraintType
Name string
NumIndexed int
IndexedColumns []IdxColumn
ConflictClause ConflictClause
CheckExpr string
ForeignKeyNum int
ForeignKeyName []string
ForeignKeyClause *ForeignKey
}
type ForeignKey struct {
Table string
NumColumns int
ColumnName []string
OnDelete FkAction
OnUpdate FkAction
Match string
Deferrable FkDefType
}
type IdxColumn struct {
Name string
CollateName string
Order OrderClause
}
FAQs
Unknown package
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.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.