Git Product home page Git Product logo

my-bookmark's Issues

容器更新会不会导致配置文件丢失

我看docker部署那里没有映射容器的config路径到本机上,这样如果以后更新不久什么都没了?
望改进,我也不懂配置文件是在容器的哪个路径上,所以自己不会设置,,,

SyntaxError: Unexpected token

在执行完 npm install ,接下来我使用命令 node ./bin/www,出现错误如下:

[root@izuf69vcnr1ik26qj06t0cz my-bookmark]# node ./bin/www
/root/my-bookmark/routes/api.js:1225
let downloadFavicon = async () => {
^
SyntaxError: Unexpected token (
at Object.exports.runInThisContext (vm.js:76:16)
at Module._compile (module.js:528:28)
at Object.Module._extensions..js (module.js:565:10)
at Module.load (module.js:473:32)
at tryModuleLoad (module.js:432:12)
at Function.Module._load (module.js:424:3)
at Module.require (module.js:483:17)
at require (internal/module.js:20:19)
at Object. (/root/my-bookmark/app.js:10:11)
at Module._compile (module.js:556:32)

nodejs:v6.6.0
mysql:v5.7.24

自建服务器,网页小图标依然通过favicon.lucq.fun解析

在购买的云服务器中,通过docker安装,发现网址前面的小图标依然需要favicon.lucq.fun解析。如果开了代理连不上favicon.lucq.fun,所有图标就都是默认的小e。这是一个BUG吗?还是正常的设计?

总之很感谢你!我也是因为浏览器的书签同步功能老出错,才想要找个书签收藏网站。想说自己写个呢,github上搜索居然真的有

启动就报错

pm2.json

{
"apps": [{
"name": "my-bookmark",
"script": "adapter.js",
"cwd": "/data/mystack/sites/mybookmark/src/config",
"exec_mode": "fork",
"max_memory_restart": "1G",
"autorestart": true,
"node_args": [],
"args": [],
"env": {

}

}]
}

Error: Cannot find module 'think-cache-file'

my-bookmark项目存在跨站脚本攻击漏洞

关于XSS

来自百度百科:

XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。

项目中的XSS

漏洞文件:https://github.com/luchenqun/my-bookmark/blob/master/routes/api.js#L1450
代码行数:1450

<pre id="note" style="background-color:RGB(243,244,245); padding:0px 10px 0px 10px; margin:0px; width:60%; min-height:100%;display: inline-block;text-align: left; font-size: 15px; font-family:italic arial,sans-serif;word-wrap: break-word;white-space: pre-wrap;">\n\n${data}\n\n</pre>

在处理留言内容并且输出到页面中的时候直接将留言内容输出到了页面中,我这里评论了一段恶意的XSS的攻击代码<svg/onload=alert(1)>,其表示弹一个框并且内容为1。

测试案例:https://mybookmark.cn/api/notes/?shareNote=329

0

修复建议

建议在处理的时候使用HTML实体化编码的方式对留言内容进行编码然后再输出。

关于我

Vulkey_Chen,信息安全爱好者。
团队:米斯特安全团队
博客:gh0st.cn

mysql5.7默认字符集默认utf8mb3,导致标题带有emoji报错

以下为报错网站https://emojixd.com/书签报错信息

Error: ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect string value: '\xF0\x9F\xA4\xA3 E...' for column 'title' at row 1
    at Query.Sequence._packetToError (/app/node_modules/mysql/lib/protocol/sequences/Sequence.js:47:14)
    at Query.ErrorPacket (/app/node_modules/mysql/lib/protocol/sequences/Query.js:79:18)
    at Protocol._parsePacket (/app/node_modules/mysql/lib/protocol/Protocol.js:291:23)
    at Parser._parsePacket (/app/node_modules/mysql/lib/protocol/Parser.js:433:10)
    at Parser.write (/app/node_modules/mysql/lib/protocol/Parser.js:43:10)
    at Socket.<anonymous> (/app/node_modules/mysql/lib/Connection.js:88:28)
    at Socket.<anonymous> (/app/node_modules/mysql/lib/Connection.js:526:10)
    at Socket.emit (events.js:315:20)
    at addChunk (_stream_readable.js:309:12)
    --------------------
    at Protocol._enqueue (/app/node_modules/mysql/lib/protocol/Protocol.js:144:48)
    at PoolConnection.query (/app/node_modules/mysql/lib/Connection.js:198:25)
    at /app/node_modules/think-helper/index.js:83:10
    at new Promise (<anonymous>)
    at /app/node_modules/think-helper/index.js:82:12
    at ThinkMysql.[think-mysql-query] (/app/node_modules/think-mysql/index.js:169:12)
    at /app/node_modules/think-mysql/index.js:247:25
    at processTicksAndRejections (internal/process/task_queues.js:93:5) {
  code: 'ER_TRUNCATED_WRONG_VALUE_FOR_FIELD',
  errno: 1366,
  sqlMessage: "Incorrect string value: '\\xF0\\x9F\\xA4\\xA3 E...' for column 'title' at row 1",
  sqlState: 'HY000',
  index: 0,
  sql: "INSERT INTO `bookmarks` (`userId`,`tagId`,`title`,`url`,`clickCount`,`createdAt`,`lastClick`) VALUES (2,2,'🤣 Emoji表情大全,颜文字百科  - EmojiXD','https://emojixd.com/',1,'2022-03-15 03:14:11','2022-03-26 09:19:36')"

如何解决?

  1. 修改书签,去掉emoji表情。 治标不治本
  2. 修改mysql5.7默认字符集为utf8mb4。可以参考这篇博客:https://www.lovesofttech.com/database/mysql5.7ToUtf8mb4.html

如何启用/禁用用户注册

非常不错的项目 已经部署在了VPS上,不过作为自托管项目,仅靠robots.txt可能不能很好屏蔽某些访问。仅作为个人使用,如何在需要的情况下关闭注册或开启访问限制呢?

书签字体不够显眼

1 页面上下左右空白太大, 至少上面的空白要调小一点
2 书签下方的分页条, 建议字体小一点, 以突出书签。
3 书签字体要大一点

建议:mysql以环境变量方式配置使用

docker把mysql一块打包,使用时没有指定挂载,那么下次更新app容器时,数据会不会丢失呢?建议定义数据目录,可挂载或者mysql以环境变量形式引入使用

请问,可以添加一个,打开当前所有书签的功能吗?

我平时也烦恼管理书签,试过很多开源软件,都不太适合。
看了下你这个功能,和我需要的比较贴近,然后只是我还有个小功能,就是当前这个文件夹分类下的标签,我需要能够同时打开到一个新的浏览器窗口中,请问,有这个计划吗?

image

比如在上面加按钮功能,点一下可以把当前这个分类下面的所有页面都打开

目录只有一层?

我的chrome书签有3层文件夹,导入后只剩下最外面的文件夹了,点开后这不乱了嘛,作者怎么解决的

部署出错

请问部署时候还需要创建设置mongodb数据库吗

作者可以考虑 导入OneTab格式书签的功能吗

OneTab的导出文件就是一个txt 每行一个网址+网页标题
平时喜欢把看到过的内容全扔进进去OneTab 但内容多起来之后就开始卡
用到现在的结果是有十多个备份文件了 希望能找一个程序集中管理这些东西
如果能加入这个功能 就太方便了

手机版chrome插件无法读取登录状态

Yandex安卓浏览器安装chrome插件,通过插件操作书签添加,可正常弹出添加书签/备忘录的弹出窗,但不管实际是否已登录账号,均提示未登录的错误提示,之后跳转到登录界面,如实际已登录则再跳转到手机版主页(https://m.mybookmark.cn/#/tags) ,之后重复操作依旧无法添加书签

增加arm64 和armv7 版本的docker

使用很好,可惜没有arm架构的docker支持,索性自己做了一个

docker run -itd --name mybookmark -p 2000-2000 -p 3306-3306 740162752/bookmark

方便大家部署使用

有计划sqlite版本吗

看到国产都支持一下。
软件感觉很好,可否考虑sqlite版本?用于轻量部署?

非常棒非常棒的extention

哥们你好, 无意间发现了您的这个extention,我觉得思路太牛逼了,开发者大多用vimium,但是正常的存储书签方式太图形化了,非常麻烦.您的这个就解决了这个问题.存入书签之后可以通过链接导航到书签页面,这是所有的书签extention做不到的.给你的思路点赞一万次.

不过这个也是稍微有点儿小bug,不知道是不是我使用的问题,首先没有找到同步chrome书签的选项,然后右键加入书签的时候,每次提示要重新登录,所以暂时还不能实际应用起来,但是思路真的很棒,我相信,这是vim化书签的最好解决方案,期待你的进一步开发.

再次点赞.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.