有时,当用户将数据复制并粘贴到输入表单时,我们会得到如下字符:
没有,"对于开头报价和 - 对于最终报价等等......
我使用这个例程来清理Web表单上的大多数输入(我刚才写了它,但我也在寻找改进):
function fnSanitizePost($data) //escapes,strips and trims all members of the post array
{
if(is_array($data))
{
$areturn = array();
foreach($data as $skey=>$svalue)
{
$areturn[$skey] = fnSanitizePost($svalue);
}
return $areturn;
}
else
{
if(!is_numeric($data))
{
//with magic quotes on, the input gets escaped twice, which means that we have to strip those slashes. leaving data in your database with slashes in them, is a bad idea
if(get_magic_quotes_gpc()) //gets current configuration setting of magic quotes
{
$data = stripslahes($data); …Run Code Online (Sandbox Code Playgroud) 我有这个代码:
$query = "select id from votes where username = '$user' and article_id = $this->id";
Run Code Online (Sandbox Code Playgroud)
我尝试使用此代码来清理它:
$query = sprintf("select id from votes where username = '$user' and article_id = $this->id",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
Run Code Online (Sandbox Code Playgroud)
但我得到mysql_real_escape行的这个错误:
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'mexautos'@'localhost' (using password: NO) in /home/mexautos/public_html/kiubbo/data/article.php on line 145 Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /home/mexautos/public_html/kiubbo/data/article.php on line 145 Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'mexautos'@'localhost' (using password: NO) in /home/mexautos/public_html/kiubbo/data/article.php on …Run Code Online (Sandbox Code Playgroud) 我有一个记录编辑链接,它获取一个7字符的字母数字文本字符串,结构中始终是ZZZZ111,然后在MySQL查询中用于提取该记录ID的所有相关数据.
是mysql_real_escape_string()所有我需要在这个消毒方面$_GET['id']?或者还有更多步骤来保护我的数据库?
jQuery 中是否有任何方法来验证表单数据?如何清理表单数据?
我的问题与此问题有关,但我试图反转"<%="的默认Rails 3行为,以便我可以注入HTML.
在我的场景中,我有一个生成HTML的旧Rails 2插件.然后我的视图需要在页面中注入此HTML.
当这个插件创建存储在变量中的HTML时html_to_show:
<p class="notice"><span></span>Sorry about this, but we have a problem...</p><p class="error"><span></span>Cannot go to next step</p>
Run Code Online (Sandbox Code Playgroud)
在视图中我试图显示这样的内容html_to_show:
<%= html_to_show %>
Run Code Online (Sandbox Code Playgroud)
...我在浏览器中得到的是:
<p class="notice"><span></span>Sorry about this, but we have a problem...</p><p class="error"><span></span>Cannot go to next step</p>
Run Code Online (Sandbox Code Playgroud)
如何让Rails 3 html_to_show完全按原样注入内容,而不进行任何清理?
在我的例子中,我使用jQuery和PHP.我可以添加数据宽度jQuery,当我这样做时创建新的div标签.
我遇到的问题是如果我将"我的åäötest"添加到div类中,例如它看起来像这样:
<div class="My åäö test">
Run Code Online (Sandbox Code Playgroud)
实际上,这是三个班级.我不知何故需要像Wordpress一样清理它:
我的结果应该是:
<div class="my-aao-test">
Run Code Online (Sandbox Code Playgroud)
任何其他建议如何更好地存储附加到div或其他元素的数据也是受欢迎的.
是否可以扩展PHP echo以便我可以在显示的每个字符串上运行一些额外的处理代码?我需要一种方法来清理所有输出,并且不希望必须strip_tags手动调用每个显示器.
我如何在表单中阻止HTML代码?所以,当有人输入HTML代码时,它不可用......
这是一个评论系统......
代码'if(-e"filename")'测试在包含该代码的脚本的目录中是否存在具有名称filename的文件.
怎么做名字检查?Perl的?操作系统?Bash on POSIX-os?
'if(-e"cat string")'会在Linux上执行cat命令吗?
我想知道为了能够避免不需要的文件访问,如"../file"将访问父目录中的文件.
要分享我的支票代码:
if($folder =~ m/$([\\]?\.[\\]?\.|[\\]?\\|[\\]?\/|[\\]?\?|[\\]?*|[\\]?:|[\\]?\||[\\]?\"|[\\]?\<|[\\]?\>)^|$([\\]?\.[\\]?\.|[\\]?\\|[\\]?\/|[\\]?\?|[\\]?*|[\\]?:|[\\]?\||[\\]?\"|[\\]?\<|[\\]?\>)\/|\/([\\]?\.[\\]?\.|[\\]?\\|[\\]?\/|[\\]?\?|[\\]?*|[\\]?:|[\\]?\||[\\]?\"|[\\]?\<|[\\]?\>)\/|\/([\\]?\.[\\]?\.|[\\]?\\|[\\]?\/|[\\]?\?|[\\]?*|[\\]?:|[\\]?\||[\\]?\"|[\\]?\<|[\\]?\>)^|\$'[^']*'/)
{
#error
}
Run Code Online (Sandbox Code Playgroud)
更新正则表达式:
if($folder =~ m/(\/|\\)|$([\\]?\.[\\]?\.^|$[\\]?(\*|\?)^|\$'[^']*'/)
{
#error
}
Run Code Online (Sandbox Code Playgroud)
说明:$ folder必须是纯文件名.如果它包含Windows或POSIX路径分隔符或是(任何转义的)父目录返回链接或是(任何转义)通配符(因为它匹配第一个匹配的文件并至少在Mac OS X上返回true)或包含C ANSI转义任何地方的序列,信号错误 其他任何东西,即使不合法或阴暗,也应该简单地返回"文件不存在",因此可以提供给'if(-e $文件夹)'.
消毒可以保持代码清洁,消除"脏"注射.在HTML和JavaScript中,这是通过删除不安全标记或转义用户输入来实现的.
"消毒"对C意味着什么?
在将所有数据插入数据库之前,我会对其进行验证和清理。在显示它之前从数据库中提取它时对其进行验证是否被认为是好的或多余的策略?
这归结为对您自己的代码的信任程度。在一种极端情况下,如果我知道只有我会使用客户端界面并且永远不会出错,我可以完全放弃验证。另一方面,我可以验证每个班级的数据,以防我与其他人一起工作而他们忘记正确完成工作。但在这种特殊情况下,一般的好做法是什么?
sanitization ×11
php ×6
html ×2
jquery ×2
validation ×2
c ×1
cakephp ×1
database ×1
echo ×1
erb ×1
filenames ×1
forms ×1
javascript ×1
perl ×1
sanitize ×1
security ×1
string ×1
strip-tags ×1