Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
下面的PHP代码可以被利用吗?_Php_File_Chat - Fatal编程技术网

下面的PHP代码可以被利用吗?

下面的PHP代码可以被利用吗?,php,file,chat,Php,File,Chat,任何人都可以利用我的以下代码:- $myfile = fopen("chat.txt", "a") or die("Unable to save!"); $content = trim($_POST['message'])."\n"; fwrite($myfile, $content); fclose($myfile); 我正在制作一个小型聊天应用程序,我在text文件中编写内容,而不是mysql。性能变化不大,但我更喜欢file,因为它比mysql快一点 我唯

任何人都可以利用我的以下代码:-

    $myfile = fopen("chat.txt", "a") or die("Unable to save!");
    $content = trim($_POST['message'])."\n";
    fwrite($myfile, $content);
    fclose($myfile);
我正在制作一个小型聊天应用程序,我在
text
文件中编写内容,而不是
mysql
。性能变化不大,但我更喜欢
file
,因为它比
mysql
快一点

我唯一关心的是,“有人能利用”上面的代码吗

我看不出有什么办法,只是问问,我是否遗漏了什么。

是的,它们被称为攻击。他们不会告诉你如何存储数据,而是告诉你何时打印数据

基本上,这些攻击可以包括javascript代码,这些代码将在客户端计算机上运行,以窃取其cookie,例如攻击者感兴趣的会话ID

您可以通过使用编码和解码来避免这种情况。

  • 消息可以包含
    \n
    ,因此如果您依赖于此,我可能会破坏顺序/流程
  • 信息长度不受限制我可能会让你空间不够
  • 信息数量没有限制,你的IO是我的
  • 消息可能包含XS(如@Xorifelse所述)
  • 消息可能包含令人讨厌的控制字符,例如使用
    cat

以txt文件的形式查看上面的答案没问题,但如果有人调用,请找到从您的服务器调用它的方法,即
index.php?page=chat.txt
&假设您包含基于url变量($\u GET['page'])的文件,则可以插入php对象。@Theraot这不适合代码审查。这是一个特定的问题,代码审查可以针对代码的任何部分和所有部分。@Mast我在那里看到过类似的问题,关于“我已经完成了这个做X和Y的代码,它工作了,但我想知道它是否安全。人们能利用它吗?[代码列表]”@Theraot好吧,这是一个很好的提示,让代码实际输出日志。但这真的足够成为一个答案吗?(从技术上讲,上述代码没有问题)除此之外,我看不出任何问题,只是想一想前面的步骤。就像只记录日志一样,这没关系,但也许你想在你的页面上逐行打印聊天记录,这存在安全风险。我认为这是一个有用的评论,而不是回答。应该注意的是,任何体面的web服务器对帖子都有一个隐式的大小限制,这可能是错误配置的。(+1)