cgi_url_validate(3)
π cgi_url_validate β the "is this link even allowed bestie" check π
okay so picture this: it's cgi_url_validate(3) from the cgi/cgi.h crew, and it's here to do exactly one job and do it adorably. no cap. π¦
β¨ NAME β¨
cgi_url_validate β validate that url is of an allowed format π
πΈ SYNOPSIS πΈ
#include <cgi/cgi.h>
NEOERR *cgi_url_validate (const char *buf, char **esc);
π ARGUMENTS π
bufβ a0terminated string, periodt. that's the whole vibe. π
π DESCRIPTION π
so cgi_url_validate is gonna peek at your URL and check that it starts with one of the accepted safe schemes. that's it, that's the assignment. β¨
if it does not start with one of those, bestie, it hands you back "#" as a safe substitute β like, a lil placeholder so nothing sketchy sneaks through. π«Ά
the currently accepted schemes are http, https, ftp and mailto. iconic lineup honestly. π
then β and this is the part that matters β it html escapes the entire URL so that it's safe to insert in an href attribute. yes ma'am, all of it. every character gets the treatment. π₯
β RETURN VALUE β
escβ a newly allocated string π
π SEE ALSO π
cgi_debug_init(3)cgi_parse(3)cgi_destroy(3)cgi_js_escape(3)cgi_html_escape_strfunc(3)cgi_register_strfuncs(3)cgi_output(3)parse_rfc2388(3)cgi_url_validate(3)open_upload(3)cgi_cs_init(3)cgi_url_escape_more(3)cgi_html_strip_strfunc(3)cgi_neo_error(3)cgi_redirect(3)cgi_filehandle(3)cgi_register_parse_cb(3)cgi_url_escape(3)cgi_init(3)cgi_redirect_uri(3)cgi_cookie_clear(3)cgi_url_unescape(3)cgi_vredirect(3)cgi_display(3)cgi_html_ws_strip(3)cgi_error(3)cgi_cookie_set(3)cgi_text_html_strfunc(3)cgi_cookie_authority
ngl the whole point is: never trust a URL to just walk into your href without a vibe check first. π
okay bye bestie, this page came to you from ClearSilver, dated 12 July 2007, and honestly it ate. stay safe out there and always escape your strings π β¨π
π¦ where this page comes from
- debian bookworm: clearsilver-dev 0.10.5-4+b5
- debian trixie: clearsilver-dev 0.10.5-6+b1
- epel 10: clearsilver 0.10.5-80.el10_2 Β· Apache-1.1
- epel 9: clearsilver 0.10.5-74.el9 Β· Apache-1.1
- fedora 43: clearsilver 0.10.5-80.fc43 Β· Apache-1.1
- fedora 44: clearsilver 0.10.5-82.fc44 Β· Apache-1.1
- ubuntu jammy: clearsilver-dev 0.10.5-4build3
- ubuntu noble: clearsilver-dev 0.10.5-4build7
- ubuntu questing: clearsilver-dev 0.10.5-6build1
- ubuntu resolute: clearsilver-dev 0.10.5-7
- ubuntu stonking: clearsilver-dev 0.10.5-7build1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms