我有一个base64编码字符串,像这样: eyJjb3VudCI6IjAiLCJzdmNubyI6IjI0OTAiLCJzdGFydGR0IjoiMjAxNi0wNS0xNiAxMToxOTowMC4wIiwiaW5zdGFsbF9uYW1lIjoiIiwiY29ubmVjdGl2aXR5dGhyb3VnaGxpc3QiOiIiLCJyZXZlbnVlY2l0eSI6IiIsIm9iX2J5dGVzb3V0IjoiMCIsImN1c3RvbWVydHlwZSI6IiIsImNhbmNlbGR0IjoiIiwidXNlc3VtIjoiZmFsc2UiLCJhY3RjYXQiOiIyIiwiYmFsYnl0ZXNpbiI6Ii0xIiwicGtndHlwZSI6Ik8iLCJwa2dpZCI6Ik9TQjRtYnBzNDBHQjFtYnBzVUwiLCJpbnN0YWxsX3dlYiI6IiIsInBvZCI6IiIsInN0YXR1cyI6IjAiLCJiYWxzZWNvbmRzIjoiLTEiLCJjb3VudHJ5bm8iOiIiLCJpbnN0YWxsX2NpdHkiOiIiLCJpbnN0YWxsX2VtYWlsIjoiIiwic2Vjb25kYXJ5cG9kY29kZSI6IiIsImFjdG5vIjoiNjA1MTMiLCJtb25leWJhbCI6IiIsImFjdG5hbWUiOiJPc2JuZXQiLCJkb21ubyI6IjIwIiwibXVsdGkiOiJ0cnVlIiwibGFzdG1pbGVubyI6IiIsImV4cGlyZWR0IjoiIiwic3RhcnREYXRlIjoiMjAxNi0wNS0xNiAxMToxOTowMC4wIiwic3ZjdHlwZSI6IkludGVybmV0IEFjY2VzcyIsImluc3RhbGxfcGhvbmUiOiIiLCJpbnN0YWxsX2FkZHJlc3MiOiIiLCJyYXRlUGxhbiI6Ik9TQjRtYnBzNDBHQjFtYnBzVUwiLCJyYWRkZXB0Y29kZSI6IiIsImluc3RhbGxfcGluIjoiIiwib2JfYnl0ZXNpbiI6IjAiLCJzZXNjb3VudCI6IjEiLCJzdmNkZXNjciI6Ik9TQjRtYnBzNDBHQjFtYnBzVUwiLCJyZW5ld2R0IjoiIiwic3Vic25vIjoiMTkxMzQzNiIsInNhbWVhc2JpbGwiOiJ0cnVlIiwiaW5zdGFsbF9yZW1hcmtzIjoiIiwiZG9taWQiOiJvc2JuZXRicm9hZGJhbmQiLCJpbnN0YWxsX2ZheCI6IiIsImFjdGlkIjoib3NibmV0IiwiY3BubyI6IiIsImFjdHN0YXR1cyI6IjAiLCJwb3J0bm8iOiIiLCJwcmltYXJ5cG9kY29kZSI6IiIsImV4dGVybmFsaWQiOiIiLCJjcmVhdGVkdCI6IjIwMTYtMDUtMTYgMTE6MTk6NDIuMCIsImRldmljZSI6IiIsImJhbGJ5dGVzb3V0IjoiLTEiLCJvYl9zZWNvbmRzIjoiMCIsImV4cGlyeWR0IjoiMjAxNi0wNi0xNSAxMToxOTowMC4wIiwiQ3VzdG9tZXIiOnsibmFtZSI6Ik9zYm5ldCIsImVtYWlsIjoibmFyZXNoLmNoYXZhbjg5QGdtYWlsLmNvbSIsInBob25lIjoiIiwiYWRkcmVzcyI6IlN1cGVyIE1hcmtldCIsImNpdHluYW1lIjoiQmFuZ2Fsb3JlIn0sInJlbmV3YWxEYXRlIjoiIiwibmV4dFJlbmV3YWxEYXRlIjoiMTUgSnVuIDIwMTYiLCJwYWNrYWdlQW10IjoiMyIsIlRheCI6MC40MzUsIlRheFBlcmNlbnQiOiIxNC41IiwiY29udmVuaWVuY2VGZWUiOjAuMDY4NywiVG90YWwiOjMuNTAzNywicGFja2FnZVRvdGFsIjozLjQzNX0=
为什么通过CI XSS Filter运行POST变量会截断base64字符串?
当我把它POST
到PHP服务器并接收它像
$base64String = $this->input->post('base64', TRUE);
我得到eyJjb VudCI6IjAiLCJzdmNubyI6IjI0OTAiLCJzdGFydGR0IjoiMjAxNi0wNS0xNiAxMToxOTowMC4wIiwiaW5zdGFsbF9uYW1lIjoiIiwiY29ubmVjdGl2aXR5dGhyb3VnaGxpc3QiOiIiLCJyZXZlbnVlY2l0eSI6IiIsIm9iX2J5dGVzb3V0IjoiMCIsImN1c3RvbWVydHlwZSI6IiIsImNhbmNlbGR0IjoiIiwidXNlc3VtIjoiZmFsc2UiLCJhY3RjYXQiOiIyIiwiYmFsYnl0ZXNpbiI6Ii0xIiwicGtndHlwZSI6Ik8iLCJwa2dpZCI6Ik9TQjRtYnBzNDBHQjFtYnBzVUwiLCJpbnN0YWxsX3dlYiI6IiIsInBvZCI6IiIsInN0YXR1cyI6IjAiLCJiYWxzZWNvbmRzIjoiLTEiLCJjb3VudHJ5bm8iOiIiLCJpbnN0YWxsX2NpdHkiOiIiLCJpbnN0YWxsX2VtYWlsIjoiIiwic2Vjb25kYXJ5cG9kY29kZSI6IiIsImFjdG5vIjoiNjA1MTMiLCJtb25leWJhbCI6IiIsImFjdG5hbWUiOiJPc2JuZXQiLCJkb21ubyI6IjIwIiwibXVsdGkiOiJ0cnVlIiwibGFzdG1pbGVubyI6IiIsImV4cGlyZWR0IjoiIiwic3RhcnREYXRlIjoiMjAxNi0wNS0xNiAxMToxOTowMC4wIiwic3ZjdHlwZSI6IkludGVybmV0IEFjY2VzcyIsImluc3RhbGxfcGhvbmUiOiIiLCJpbnN0YWxsX2FkZHJlc3MiOiIiLCJyYXRlUGxhbiI6Ik9TQjRtYnBzNDBHQjFtYnBzVUwiLCJyYWRkZXB0Y29kZSI6IiIsImluc3RhbGxfcGluIjoiIiwib2JfYnl0ZXNpbiI6IjAiLCJzZXNjb3VudCI6IjEiLCJzdmNkZXNjciI6Ik9TQjRtYnBzNDBHQjFtYnBzVUwiLCJyZW5ld2R0IjoiIiwic3Vic25vIjoiMTkxMzQzNiIsInNhbWVhc2JpbGwiOiJ0cnVlIiwiaW5zdGFsbF9yZW1hcmtzIjoiIiwiZG9taWQiOiJvc2JuZXRicm9hZGJhbmQiLCJpbnN0YWxsX2ZheCI6IiIsImFjdGlkIjoib3NibmV0IiwiY3BubyI6IiIsImFjdHN0YXR1cyI6IjAiLCJwb3J0bm8iOiIiLCJwcmltYXJ5cG9kY29kZSI6IiIsImV4dGVybmFsaWQiOiIiLCJjcmVhdGVkdCI6IjIwMTYtMDUtMTYgMTE6MTk6NDIuMCIsImRldmljZSI6IiIsImJhbGJ5dGVzb3V0IjoiLTEiLCJvYl9zZWNvbmRzIjoiMCIsImV4cGlyeWR0IjoiMjAxNi0wNi0xNSAxMToxOTowMC4wIiwiQ3VzdG9tZXIi
(中间有空格和回车在前5个字符后返回)。但是,当我从CI的post()
方法中删除TRUE
标志时,我得到一个完整的base64字符串。
这是CI的XSS过滤器或XSS过滤器的缺陷吗? :/
编辑:空格和回车后第5个字符不是通用的。它发生在这个特定的字符串中。我还没有尝试过任何其他base64字符串。