Learn what LFI is and how BlackLab WAF protects against it
Local File Inclusion (LFI) is a type of vulnerability that allows an attacker to trick your application into loading local files from the server.
This can lead to sensitive data exposure, code execution, or full system compromise.
An attacker tries to manipulate input parameters to include files from the server.
For example:
GET /index.php?page=../../etc/passwdIf the app does not properly validate the page parameter, it may return the contents of /etc/passwd.Common targetsSystem files (e.g., /etc/passwd, /etc/hosts)Application configuration filesLog files that may contain credentials or session tokens## How BlackLab helpsBlackLab’s LFI plugin detects and blocks these attempts by scanning for suspicious path patterns such as:../ (directory traversal)Absolute paths like /etc/passwdEncoded traversal (..%2F)Example configuration:```rubyBlackLab.configure do |config| config.plugins = [ BlackLab::Plugins::LfiPlugin.new(weight: 2) ] config.callback_threshold = 3end
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Mint Starter Kit","colors":{"primary":"#0047AB","light":"#0047AB","dark":"#0261e6"},"logo":{"light":"https://mintcdn.com/windmotion/A7uAKDcWeqnT9i_N/logo/light.svg?fit=max\u0026auto=format\u0026n=A7uAKDcWeqnT9i_N\u0026q=85\u0026s=dda0fb6d4a86c6eb09054aa3bef8a60b","dark":"https://mintcdn.com/windmotion/A7uAKDcWeqnT9i_N/logo/dark.svg?fit=max\u0026auto=format\u0026n=A7uAKDcWeqnT9i_N\u0026q=85\u0026s=3c2898dfbba309ee5074127534f75383"},"favicon":"/favicon.svg","navbar":{"links":[{"label":"Support","href":"https://github.com/windmotion-io/black-lab/issues"}],"primary":{"type":"button","label":"Repository","href":"https://github.com/windmotion-io/black-lab"}},"footer":{"socials":{"github":"https://github.com/windmotion-io/","linkedin":"https://linkedin.com/company/windmotion-io"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"]},"navigation":{"global":{"anchors":[{"anchor":"Repository","icon":"github","href":"https://https://github.com/windmotion-io/black-lab"},{"anchor":"Windmotion","icon":"heart","href":"https://windmotion.io"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"windmotion","hasAudioNarration":false,"actualSubdomain":"windmotion","customDomains":["blacklab.windmotion.io"],"gitSource":{"type":"github","owner":"federicoaldunate","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{},"buildId":"6ae93e7c42dd55d8fa0c6b2a:success","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Guides","count":10},{"language":"default","tag":"Plugins","count":6},{"language":"default","tag":"Blog","count":4},{"language":"default","tag":"Getting started","count":3},{"language":"default","tag":"Write your own plugin","count":1}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"plugins/lfi","slug":"/plugins/lfi","pageMetadata":{"title":"Local File Inclusion (LFI)","description":"Learn what LFI is and how BlackLab WAF protects against it","icon":"file","href":"/plugins/lfi"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Learn what LFI is and how BlackLab WAF protects against it\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={br:`br`,code:`code`,hr:`hr`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Local File Inclusion (`,_jsx(_components.strong,{children:`LFI`}),`) is a type of vulnerability that allows an attacker to trick your application into loading local files from the server.`,_jsx(_components.br,{}),`\n`,`This can lead to sensitive data exposure, code execution, or full system compromise.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`what-is-lfi`,children:`What is LFI?`}),`\n`,_jsxs(_components.p,{children:[`An attacker tries to manipulate input parameters to include files from the server.`,_jsx(_components.br,{}),`\n`,`For example:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`29`,language:`http`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`http`,children:_jsxs(_components.code,{language:`http`,numberOfLines:`29`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`GET`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` /index.php?page=../../etc/passwd`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`If the app does not properly validate the page parameter, it may return the contents of /etc/passwd.`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Common targets`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`System files (e.g., /etc/passwd, /etc/hosts)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Application configuration files`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Log files that may contain credentials or session tokens`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`## How BlackLab helps`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`BlackLab’s LFI plugin detects and blocks these attempts by scanning for suspicious path patterns such as:`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`../ (directory traversal)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Absolute paths like /etc/passwd`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Encoded traversal (..%2F)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Example configuration:`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:\"```ruby\"})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`BlackLab.configure do |config|`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` config.plugins = [`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#82071E`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F44747`,\"--shiki-dark-font-style\":`inherit`},children:` BlackLab::Plugins::LfiPlugin.new(weight:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 2`}),_jsx(_components.span,{style:{color:`#82071E`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F44747`,\"--shiki-dark-font-style\":`inherit`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` config.callback_threshold = `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`end`})}),`\n`]})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Local File Inclusion (LFI)","description":"Learn what LFI is and how BlackLab WAF protects against it","icon":"file","href":"/plugins/lfi"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What is LFI?","slug":"what-is-lfi","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"windmotion","siteName":"Mint Starter Kit","title":"Local File Inclusion (LFI) - Mint Starter Kit","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-07T10:52:53.872Z","originalFileLocation":"plugins/lfi.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Learn what LFI is and how BlackLab WAF protects against it\">\u003cmeta data-mint-head name=\"application-name\" content=\"Mint Starter Kit\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/windmotion/32GmHwfk4i2Wb4kL/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/windmotion/32GmHwfk4i2Wb4kL/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/windmotion/32GmHwfk4i2Wb4kL/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/windmotion/32GmHwfk4i2Wb4kL/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/windmotion/32GmHwfk4i2Wb4kL/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/windmotion/32GmHwfk4i2Wb4kL/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/windmotion/32GmHwfk4i2Wb4kL/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/windmotion/32GmHwfk4i2Wb4kL/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/windmotion/32GmHwfk4i2Wb4kL/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Local File Inclusion (LFI) - Mint Starter Kit\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn what LFI is and how BlackLab WAF protects against it\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Mint Starter Kit\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://blacklab.windmotion.io/plugins/lfi\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://windmotion.mintlify.site/_mintlify/api/og/v2?division=Plugins\u0026amp;title=Local+File+Inclusion+%28LFI%29\u0026amp;description=Learn+what+LFI+is+and+how+BlackLab+WAF+protects+against+it\u0026amp;theme=87f78d9799440c649b5af683\u0026amp;signature=1fed1e7dc7fe0f421c24e75611bd933bd10153d13106979492cd3c97ad38ea9e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Local File Inclusion (LFI) - Mint Starter Kit\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn what LFI is and how BlackLab WAF protects against it\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://windmotion.mintlify.site/_mintlify/api/og/v2?division=Plugins\u0026amp;title=Local+File+Inclusion+%28LFI%29\u0026amp;description=Learn+what+LFI+is+and+how+BlackLab+WAF+protects+against+it\u0026amp;theme=87f78d9799440c649b5af683\u0026amp;signature=1fed1e7dc7fe0f421c24e75611bd933bd10153d13106979492cd3c97ad38ea9e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/windmotion/32GmHwfk4i2Wb4kL/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Mint Starter Kit\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0047AB\">\u003clink data-mint-head rel=\"canonical\" href=\"https://blacklab.windmotion.io/plugins/lfi\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/plugins/lfi.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://blacklab.windmotion.io/#organization\",\"name\":\"Mint Starter Kit\",\"url\":\"https://blacklab.windmotion.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/windmotion/A7uAKDcWeqnT9i_N/logo/light.svg?fit=max\u0026auto=format\u0026n=A7uAKDcWeqnT9i_N\u0026q=85\u0026s=dda0fb6d4a86c6eb09054aa3bef8a60b\"}},{\"@type\":\"WebSite\",\"@id\":\"https://blacklab.windmotion.io#website\",\"name\":\"Mint Starter Kit\",\"url\":\"https://blacklab.windmotion.io\",\"publisher\":{\"@id\":\"https://blacklab.windmotion.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://blacklab.windmotion.io/plugins/lfi#webpage\",\"url\":\"https://blacklab.windmotion.io/plugins/lfi\",\"name\":\"Local File Inclusion (LFI)\",\"description\":\"Learn what LFI is and how BlackLab WAF protects against it\",\"dateModified\":\"2026-01-07T10:52:53.872Z\",\"isPartOf\":{\"@id\":\"https://blacklab.windmotion.io#website\"},\"breadcrumb\":{\"@id\":\"https://blacklab.windmotion.io/plugins/lfi#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://blacklab.windmotion.io/plugins/lfi#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Plugins\",\"item\":\"https://blacklab.windmotion.io/plugins/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Local File Inclusion (LFI)\",\"item\":\"https://blacklab.windmotion.io/plugins/lfi\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://blacklab.windmotion.io/plugins/lfi#article\",\"headline\":\"Local File Inclusion (LFI)\",\"name\":\"Local File Inclusion (LFI)\",\"description\":\"Learn what LFI is and how BlackLab WAF protects against it\",\"url\":\"https://blacklab.windmotion.io/plugins/lfi\",\"mainEntityOfPage\":{\"@id\":\"https://blacklab.windmotion.io/plugins/lfi#webpage\"},\"dateModified\":\"2026-01-07T10:52:53.872Z\",\"publisher\":{\"@id\":\"https://blacklab.windmotion.io/#organization\"},\"isPartOf\":{\"@id\":\"https://blacklab.windmotion.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Mint Starter Kit\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Mint Starter Kit","nav":{"global":{"anchors":[{"anchor":"Repository","icon":"github","href":"https://https://github.com/windmotion-io/black-lab"},{"anchor":"Windmotion","icon":"heart","href":"https://windmotion.io"}]},"tabs":[{"tab":"Guides","groups":[{"group":"Getting started","pages":[{"title":"BlackLab WAF: Introduction","href":""},{"title":"Quickstart","href":"/quickstart"},{"title":"Requirements","href":"/requirements"}]},{"group":"Plugins","pages":[{"title":"Introduction","href":"/plugins/introduction"},{"title":"SQL Injection (SQLi)","icon":"database","href":"/plugins/sqli"},{"title":"Cross-Site Scripting (XSS)","description":"Learn what XSS is and how BlackLab WAF protects against it","icon":"file","href":"/plugins/xss"},{"title":"Local File Inclusion (LFI)","icon":"file","href":"/plugins/lfi"},{"title":"Remote File Inclusion (RFI)","description":"Learn what RFI is and how BlackLab WAF protects against it","icon":"globe","href":"/plugins/rfi"},{"title":"Path Traversal","icon":"folder-open","href":"/plugins/path-traversal"}]},{"group":"Write your own plugin","pages":[{"title":"Custom Plugins","icon":"wrench","href":"/plugins/write-your-own"}]}]},{"tab":"Blog","pages":[{"title":"Blog","href":"/blog/why-creating-this-waf"}]}]},"basePath":"","title":"Local File Inclusion (LFI) - Mint Starter Kit","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":[],"chunks":[]}